New upstream version 6.6.92.dfsg.1
Norbert Preining
4 years ago
0 | 2019-09-19 Gavin Smith <gavinsmith0123@gmail.com> | |
1 | ||
2 | pretest 6.6.92 | |
3 | ||
4 | * configure.ac: version | |
5 | ||
0 | 6 | 2019-09-17 Gavin Smith <gavinsmith0123@gmail.com> |
1 | 7 | |
2 | 8 | pretest 6.6.91 |
396 | 396 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
397 | 397 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
398 | 398 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
399 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
399 | 400 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
400 | 401 | GNULIB_DUP = @GNULIB_DUP@ |
401 | 402 | GNULIB_DUP2 = @GNULIB_DUP2@ |
551 | 552 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
552 | 553 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
553 | 554 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
555 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
554 | 556 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
555 | 557 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
556 | 558 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
618 | 620 | GNULIB_WRITE = @GNULIB_WRITE@ |
619 | 621 | GNULIB__EXIT = @GNULIB__EXIT@ |
620 | 622 | GREP = @GREP@ |
623 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
621 | 624 | HAVE_ATOLL = @HAVE_ATOLL@ |
622 | 625 | HAVE_BTOWC = @HAVE_BTOWC@ |
623 | 626 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
624 | 627 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
625 | 628 | HAVE_CHOWN = @HAVE_CHOWN@ |
629 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
626 | 630 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
627 | 631 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
628 | 632 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
688 | 692 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
689 | 693 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
690 | 694 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
695 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
691 | 696 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
692 | 697 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
693 | 698 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
708 | 713 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
709 | 714 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
710 | 715 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
716 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
711 | 717 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
712 | 718 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
713 | 719 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
742 | 748 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
743 | 749 | HAVE_SETENV = @HAVE_SETENV@ |
744 | 750 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
751 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
745 | 752 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
746 | 753 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
747 | 754 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
756 | 763 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
757 | 764 | HAVE_STRSEP = @HAVE_STRSEP@ |
758 | 765 | HAVE_STRTOD = @HAVE_STRTOD@ |
766 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
759 | 767 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
760 | 768 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
761 | 769 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
834 | 842 | LIBINTL = @LIBINTL@ |
835 | 843 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
836 | 844 | LIBOBJS = @LIBOBJS@ |
837 | LIBPTH = @LIBPTH@ | |
838 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
839 | 845 | LIBS = @LIBS@ |
840 | 846 | LIBTHREAD = @LIBTHREAD@ |
841 | 847 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
851 | 857 | LTLIBINTL = @LTLIBINTL@ |
852 | 858 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
853 | 859 | LTLIBOBJS = @LTLIBOBJS@ |
854 | LTLIBPTH = @LTLIBPTH@ | |
855 | 860 | LTLIBTHREAD = @LTLIBTHREAD@ |
856 | 861 | MAKEINFO = @MAKEINFO@ |
857 | 862 | MKDIR_P = @MKDIR_P@ |
948 | 953 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
949 | 954 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
950 | 955 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
956 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
951 | 957 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
952 | 958 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
953 | 959 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
981 | 987 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
982 | 988 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
983 | 989 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
990 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
984 | 991 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
985 | 992 | REPLACE_READ = @REPLACE_READ@ |
986 | 993 | REPLACE_READLINK = @REPLACE_READLINK@ |
993 | 1000 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
994 | 1001 | REPLACE_SETENV = @REPLACE_SETENV@ |
995 | 1002 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1003 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
996 | 1004 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
997 | 1005 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
998 | 1006 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1011 | 1019 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1012 | 1020 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1013 | 1021 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1022 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1014 | 1023 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1015 | 1024 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1016 | 1025 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
497 | 497 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
498 | 498 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
499 | 499 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
500 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
500 | 501 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
501 | 502 | GNULIB_DUP = @GNULIB_DUP@ |
502 | 503 | GNULIB_DUP2 = @GNULIB_DUP2@ |
652 | 653 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
653 | 654 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
654 | 655 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
656 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
655 | 657 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
656 | 658 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
657 | 659 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
719 | 721 | GNULIB_WRITE = @GNULIB_WRITE@ |
720 | 722 | GNULIB__EXIT = @GNULIB__EXIT@ |
721 | 723 | GREP = @GREP@ |
724 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
722 | 725 | HAVE_ATOLL = @HAVE_ATOLL@ |
723 | 726 | HAVE_BTOWC = @HAVE_BTOWC@ |
724 | 727 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
725 | 728 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
726 | 729 | HAVE_CHOWN = @HAVE_CHOWN@ |
730 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
727 | 731 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
728 | 732 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
729 | 733 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
789 | 793 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
790 | 794 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
791 | 795 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
796 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
792 | 797 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
793 | 798 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
794 | 799 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
809 | 814 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
810 | 815 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
811 | 816 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
817 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
812 | 818 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
813 | 819 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
814 | 820 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
843 | 849 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
844 | 850 | HAVE_SETENV = @HAVE_SETENV@ |
845 | 851 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
852 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
846 | 853 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
847 | 854 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
848 | 855 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
857 | 864 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
858 | 865 | HAVE_STRSEP = @HAVE_STRSEP@ |
859 | 866 | HAVE_STRTOD = @HAVE_STRTOD@ |
867 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
860 | 868 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
861 | 869 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
862 | 870 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
935 | 943 | LIBINTL = @LIBINTL@ |
936 | 944 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
937 | 945 | LIBOBJS = @LIBOBJS@ |
938 | LIBPTH = @LIBPTH@ | |
939 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
940 | 946 | LIBS = @LIBS@ |
941 | 947 | LIBTHREAD = @LIBTHREAD@ |
942 | 948 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
952 | 958 | LTLIBINTL = @LTLIBINTL@ |
953 | 959 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
954 | 960 | LTLIBOBJS = @LTLIBOBJS@ |
955 | LTLIBPTH = @LTLIBPTH@ | |
956 | 961 | LTLIBTHREAD = @LTLIBTHREAD@ |
957 | 962 | MAKEINFO = @MAKEINFO@ |
958 | 963 | MKDIR_P = @MKDIR_P@ |
1049 | 1054 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1050 | 1055 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1051 | 1056 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1057 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1052 | 1058 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1053 | 1059 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1054 | 1060 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1082 | 1088 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1083 | 1089 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1084 | 1090 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1091 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1085 | 1092 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1086 | 1093 | REPLACE_READ = @REPLACE_READ@ |
1087 | 1094 | REPLACE_READLINK = @REPLACE_READLINK@ |
1094 | 1101 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1095 | 1102 | REPLACE_SETENV = @REPLACE_SETENV@ |
1096 | 1103 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1104 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1097 | 1105 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1098 | 1106 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1099 | 1107 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1112 | 1120 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1113 | 1121 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1114 | 1122 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1123 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1115 | 1124 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1116 | 1125 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1117 | 1126 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
348 | 348 | /* Define to 1 if <wchar.h> declares mbstate_t. */ |
349 | 349 | #undef HAVE_MBSTATE_T |
350 | 350 | |
351 | /* Define to 1 if you have the `mbtowc' function. */ | |
352 | #undef HAVE_MBTOWC | |
353 | ||
351 | 354 | /* Define to 1 if you have the <memory.h> header file. */ |
352 | 355 | #undef HAVE_MEMORY_H |
353 | 356 | |
490 | 493 | |
491 | 494 | /* Define to 1 if you have the <termios.h> header file. */ |
492 | 495 | #undef HAVE_TERMIOS_H |
496 | ||
497 | /* Define to 1 if you have the <threads.h> header file. */ | |
498 | #undef HAVE_THREADS_H | |
493 | 499 | |
494 | 500 | /* Define to 1 if you have the `towlower' function. */ |
495 | 501 | #undef HAVE_TOWLOWER |
663 | 669 | /* Define if references to the POSIX multithreading library should be made |
664 | 670 | weak. */ |
665 | 671 | #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 | |
680 | 672 | |
681 | 673 | /* Enable extensions on AIX 3, Interix. */ |
682 | 674 | #ifndef _ALL_SOURCE |
788 | 780 | |
789 | 781 | /* The _Noreturn keyword of C11. */ |
790 | 782 | #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))) | |
792 | 786 | # 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__))) | |
795 | 790 | /* _Noreturn works as-is. */ |
796 | 791 | # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C |
797 | 792 | # define _Noreturn __attribute__ ((__noreturn__)) |
832 | 827 | |
833 | 828 | /* Define so that glibc/gnulib argp.h does not typedef error_t. */ |
834 | 829 | #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 | ||
835 | 857 | |
836 | 858 | /* Define to a type to use for 'error_t' if it is not otherwise available. */ |
837 | 859 | #undef error_t |
0 | 0 | #! /bin/sh |
1 | 1 | # 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. | |
3 | 3 | # |
4 | 4 | # Report bugs to <bug-texinfo@gnu.org>. |
5 | 5 | # |
579 | 579 | # Identity of this package. |
580 | 580 | PACKAGE_NAME='GNU Texinfo' |
581 | 581 | 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' | |
584 | 584 | PACKAGE_BUGREPORT='bug-texinfo@gnu.org' |
585 | 585 | PACKAGE_URL='http://www.gnu.org/software/texinfo/' |
586 | 586 | |
622 | 622 | #endif" |
623 | 623 | |
624 | 624 | gl_use_threads_default= |
625 | gl_use_winpthreads_default= | |
625 | 626 | gl_getopt_required=POSIX |
626 | 627 | ac_header_list= |
627 | 628 | ac_func_list= |
685 | 686 | gltests_WITNESS |
686 | 687 | gl_GNULIB_ENABLED_xsize_FALSE |
687 | 688 | 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 | |
688 | 697 | gl_GNULIB_ENABLED_wcrtomb_FALSE |
689 | 698 | gl_GNULIB_ENABLED_wcrtomb_TRUE |
690 | 699 | gl_GNULIB_ENABLED_vasnprintf_FALSE |
739 | 748 | LIBMULTITHREAD |
740 | 749 | LTLIBTHREAD |
741 | 750 | LIBTHREAD |
742 | LIBPTH_PREFIX | |
743 | LTLIBPTH | |
744 | LIBPTH | |
745 | 751 | NEXT_AS_FIRST_DIRECTIVE_LOCALE_H |
746 | 752 | NEXT_LOCALE_H |
747 | 753 | HAVE_XLOCALE_H |
1119 | 1125 | GNULIB_BTOWC |
1120 | 1126 | REPLACE_WCTOMB |
1121 | 1127 | REPLACE_UNSETENV |
1128 | REPLACE_STRTOLD | |
1122 | 1129 | REPLACE_STRTOD |
1130 | REPLACE_SETSTATE | |
1123 | 1131 | REPLACE_SETENV |
1124 | 1132 | REPLACE_REALPATH |
1125 | 1133 | REPLACE_REALLOC |
1126 | 1134 | REPLACE_RANDOM_R |
1135 | REPLACE_RANDOM | |
1127 | 1136 | REPLACE_QSORT_R |
1128 | 1137 | REPLACE_PUTENV |
1129 | 1138 | REPLACE_PTSNAME_R |
1131 | 1140 | REPLACE_MKSTEMP |
1132 | 1141 | REPLACE_MBTOWC |
1133 | 1142 | REPLACE_MALLOC |
1143 | REPLACE_INITSTATE | |
1134 | 1144 | REPLACE_CANONICALIZE_FILE_NAME |
1135 | 1145 | REPLACE_CALLOC |
1136 | 1146 | HAVE_DECL_UNSETENV |
1139 | 1149 | HAVE_STRUCT_RANDOM_DATA |
1140 | 1150 | HAVE_STRTOULL |
1141 | 1151 | HAVE_STRTOLL |
1152 | HAVE_STRTOLD | |
1142 | 1153 | HAVE_STRTOD |
1143 | 1154 | HAVE_DECL_SETSTATE |
1155 | HAVE_SETSTATE | |
1144 | 1156 | HAVE_DECL_SETENV |
1145 | 1157 | HAVE_SETENV |
1146 | 1158 | HAVE_SECURE_GETENV |
1159 | 1171 | HAVE_MKOSTEMPS |
1160 | 1172 | HAVE_MKOSTEMP |
1161 | 1173 | HAVE_MKDTEMP |
1174 | HAVE_MBTOWC | |
1162 | 1175 | HAVE_DECL_INITSTATE |
1176 | HAVE_INITSTATE | |
1163 | 1177 | HAVE_GRANTPT |
1164 | 1178 | HAVE_GETSUBOPT |
1165 | 1179 | HAVE_DECL_GETLOADAVG |
1172 | 1186 | GNULIB_SYSTEM_POSIX |
1173 | 1187 | GNULIB_STRTOULL |
1174 | 1188 | GNULIB_STRTOLL |
1189 | GNULIB_STRTOLD | |
1175 | 1190 | GNULIB_STRTOD |
1176 | 1191 | GNULIB_SETENV |
1177 | 1192 | GNULIB_SECURE_GETENV |
1314 | 1329 | HAVE_EUIDACCESS |
1315 | 1330 | HAVE_DUP3 |
1316 | 1331 | HAVE_DUP2 |
1332 | HAVE_COPY_FILE_RANGE | |
1317 | 1333 | HAVE_CHOWN |
1318 | 1334 | GNULIB_WRITE |
1319 | 1335 | GNULIB_USLEEP |
1362 | 1378 | GNULIB_DUP3 |
1363 | 1379 | GNULIB_DUP2 |
1364 | 1380 | GNULIB_DUP |
1381 | GNULIB_COPY_FILE_RANGE | |
1365 | 1382 | GNULIB_CLOSE |
1366 | 1383 | GNULIB_CHOWN |
1367 | 1384 | GNULIB_CHDIR |
1389 | 1406 | GL_GENERATE_ARGZ_H_FALSE |
1390 | 1407 | GL_GENERATE_ARGZ_H_TRUE |
1391 | 1408 | ARGZ_H |
1409 | HAVE_ALLOCA_H | |
1392 | 1410 | GL_GENERATE_ALLOCA_H_FALSE |
1393 | 1411 | GL_GENERATE_ALLOCA_H_TRUE |
1394 | 1412 | ALLOCA_H |
1510 | 1528 | enable_rpath |
1511 | 1529 | with_libiconv_prefix |
1512 | 1530 | with_included_regex |
1513 | with_libpth_prefix | |
1514 | 1531 | enable_multiplatform |
1515 | 1532 | enable_install_warnings |
1516 | 1533 | with_external_Unicode_EastAsianWidth |
2087 | 2104 | # Omit some internal or obsolete options to make the list less imposing. |
2088 | 2105 | # This message is too long to be a string in the A/UX 3.1 sh. |
2089 | 2106 | 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. | |
2091 | 2108 | |
2092 | 2109 | Usage: $0 [OPTION]... [VAR=VALUE]... |
2093 | 2110 | |
2158 | 2175 | |
2159 | 2176 | if test -n "$ac_init_help"; then |
2160 | 2177 | 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:";; | |
2162 | 2179 | esac |
2163 | 2180 | cat <<\_ACEOF |
2164 | 2181 | |
2172 | 2189 | do not reject slow dependency extractors |
2173 | 2190 | --disable-dependency-tracking |
2174 | 2191 | speeds up one-time build |
2175 | --enable-threads={posix|solaris|pth|windows} | |
2192 | --enable-threads={posix|windows} | |
2176 | 2193 | specify multithreading API |
2177 | 2194 | --disable-threads build without multithread safety |
2178 | 2195 | --disable-rpath do not hardcode runtime library paths |
2199 | 2216 | don't compile regex; this is the default on systems |
2200 | 2217 | with recent-enough versions of the GNU C Library |
2201 | 2218 | (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 | |
2204 | 2219 | --with-external-Unicode-EastAsianWidth |
2205 | 2220 | use external Unicode-EastAsianWidth (default: no) |
2206 | 2221 | --with-external-Text-Unidecode |
2296 | 2311 | test -n "$ac_init_help" && exit $ac_status |
2297 | 2312 | if $ac_init_version; then |
2298 | 2313 | cat <<\_ACEOF |
2299 | GNU Texinfo configure 6.6.91 | |
2314 | GNU Texinfo configure 6.6.92 | |
2300 | 2315 | generated by GNU Autoconf 2.69 |
2301 | 2316 | |
2302 | 2317 | Copyright (C) 2012 Free Software Foundation, Inc. |
3005 | 3020 | This file contains any messages produced by compilers while |
3006 | 3021 | running configure, to aid debugging if configure makes a mistake. |
3007 | 3022 | |
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 | |
3009 | 3024 | generated by GNU Autoconf 2.69. Invocation command line was |
3010 | 3025 | |
3011 | 3026 | $ $0 $@ |
3314 | 3329 | as_fn_append ac_func_list " btowc" |
3315 | 3330 | as_fn_append ac_header_list " langinfo.h" |
3316 | 3331 | as_fn_append ac_header_list " xlocale.h" |
3332 | as_fn_append ac_header_list " threads.h" | |
3317 | 3333 | as_fn_append ac_func_list " _set_invalid_parameter_handler" |
3318 | 3334 | as_fn_append ac_func_list " nl_langinfo" |
3319 | 3335 | as_fn_append ac_header_list " sys/socket.h" |
3906 | 3922 | |
3907 | 3923 | # Define the identity of the package. |
3908 | 3924 | PACKAGE='texinfo' |
3909 | VERSION='6.6.91' | |
3925 | VERSION='6.6.92' | |
3910 | 3926 | |
3911 | 3927 | |
3912 | 3928 | cat >>confdefs.h <<_ACEOF |
6448 | 6464 | |
6449 | 6465 | |
6450 | 6466 | |
6467 | ||
6451 | 6468 | # Check whether --enable-threads was given. |
6452 | 6469 | if test "${enable_threads+set}" = set; then : |
6453 | 6470 | enableval=$enable_threads; gl_use_threads=$enableval |
6456 | 6473 | gl_use_threads="$gl_use_threads_default" |
6457 | 6474 | else |
6458 | 6475 | case "$host_os" in |
6459 | osf*) gl_use_threads=no ;; | |
6460 | cygwin*) | |
6476 | osf*) gl_use_threads=no ;; | |
6477 | cygwin*) | |
6461 | 6478 | case `uname -r` in |
6462 | 6479 | 1.[0-5].*) gl_use_threads=no ;; |
6463 | 6480 | *) 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 ;; | |
6464 | 6488 | esac |
6465 | 6489 | ;; |
6466 | 6490 | *) gl_use_threads=yes ;; |
6598 | 6622 | # Code from module wcrtomb: |
6599 | 6623 | # Code from module wctype-h: |
6600 | 6624 | # 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: | |
6601 | 6629 | # Code from module xalloc: |
6602 | 6630 | # Code from module xalloc-die: |
6603 | 6631 | # Code from module xalloc-oversized: |
6605 | 6633 | |
6606 | 6634 | |
6607 | 6635 | # Rest of Gnulib. |
6636 | ||
6608 | 6637 | |
6609 | 6638 | |
6610 | 6639 | |
7493 | 7522 | GNULIB_CHDIR=0; |
7494 | 7523 | GNULIB_CHOWN=0; |
7495 | 7524 | GNULIB_CLOSE=0; |
7525 | GNULIB_COPY_FILE_RANGE=0; | |
7496 | 7526 | GNULIB_DUP=0; |
7497 | 7527 | GNULIB_DUP2=0; |
7498 | 7528 | GNULIB_DUP3=0; |
7541 | 7571 | GNULIB_USLEEP=0; |
7542 | 7572 | GNULIB_WRITE=0; |
7543 | 7573 | HAVE_CHOWN=1; |
7574 | HAVE_COPY_FILE_RANGE=1; | |
7544 | 7575 | HAVE_DUP2=1; |
7545 | 7576 | HAVE_DUP3=1; |
7546 | 7577 | HAVE_EUIDACCESS=1; |
10191 | 10222 | GNULIB_SECURE_GETENV=0; |
10192 | 10223 | GNULIB_SETENV=0; |
10193 | 10224 | GNULIB_STRTOD=0; |
10225 | GNULIB_STRTOLD=0; | |
10194 | 10226 | GNULIB_STRTOLL=0; |
10195 | 10227 | GNULIB_STRTOULL=0; |
10196 | 10228 | GNULIB_SYSTEM_POSIX=0; |
10203 | 10235 | HAVE_DECL_GETLOADAVG=1; |
10204 | 10236 | HAVE_GETSUBOPT=1; |
10205 | 10237 | HAVE_GRANTPT=1; |
10238 | HAVE_INITSTATE=1; | |
10206 | 10239 | HAVE_DECL_INITSTATE=1; |
10240 | HAVE_MBTOWC=1; | |
10207 | 10241 | HAVE_MKDTEMP=1; |
10208 | 10242 | HAVE_MKOSTEMP=1; |
10209 | 10243 | HAVE_MKOSTEMPS=1; |
10222 | 10256 | HAVE_SECURE_GETENV=1; |
10223 | 10257 | HAVE_SETENV=1; |
10224 | 10258 | HAVE_DECL_SETENV=1; |
10259 | HAVE_SETSTATE=1; | |
10225 | 10260 | HAVE_DECL_SETSTATE=1; |
10226 | 10261 | HAVE_STRTOD=1; |
10262 | HAVE_STRTOLD=1; | |
10227 | 10263 | HAVE_STRTOLL=1; |
10228 | 10264 | HAVE_STRTOULL=1; |
10229 | 10265 | HAVE_STRUCT_RANDOM_DATA=1; |
10232 | 10268 | HAVE_DECL_UNSETENV=1; |
10233 | 10269 | REPLACE_CALLOC=0; |
10234 | 10270 | REPLACE_CANONICALIZE_FILE_NAME=0; |
10271 | REPLACE_INITSTATE=0; | |
10235 | 10272 | REPLACE_MALLOC=0; |
10236 | 10273 | REPLACE_MBTOWC=0; |
10237 | 10274 | REPLACE_MKSTEMP=0; |
10239 | 10276 | REPLACE_PTSNAME_R=0; |
10240 | 10277 | REPLACE_PUTENV=0; |
10241 | 10278 | REPLACE_QSORT_R=0; |
10279 | REPLACE_RANDOM=0; | |
10242 | 10280 | REPLACE_RANDOM_R=0; |
10243 | 10281 | REPLACE_REALLOC=0; |
10244 | 10282 | REPLACE_REALPATH=0; |
10245 | 10283 | REPLACE_SETENV=0; |
10284 | REPLACE_SETSTATE=0; | |
10246 | 10285 | REPLACE_STRTOD=0; |
10286 | REPLACE_STRTOLD=0; | |
10247 | 10287 | REPLACE_UNSETENV=0; |
10248 | 10288 | REPLACE_WCTOMB=0; |
10249 | 10289 | |
10301 | 10341 | if test "$cross_compiling" = yes; then : |
10302 | 10342 | case "$host_os" in |
10303 | 10343 | # Guess yes on platforms where we know the result. |
10304 | *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | |
10344 | *-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \ | |
10305 | 10345 | | hpux* | solaris* | cygwin* | mingw*) |
10306 | ac_cv_func_malloc_0_nonnull=yes ;; | |
10346 | ac_cv_func_malloc_0_nonnull="guessing yes" ;; | |
10307 | 10347 | # 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" ;; | |
10309 | 10349 | esac |
10310 | 10350 | |
10311 | 10351 | else |
10342 | 10382 | fi |
10343 | 10383 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 |
10344 | 10384 | $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 | |
10350 | 10393 | |
10351 | 10394 | |
10352 | 10395 | cat >>confdefs.h <<_ACEOF |
11274 | 11317 | # memchr should not dereference overestimated length after a match |
11275 | 11318 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 |
11276 | 11319 | # 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. | |
11277 | 11322 | # Assume that memchr works on platforms that lack mprotect. |
11278 | 11323 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 |
11279 | 11324 | $as_echo_n "checking whether memchr works... " >&6; } |
11282 | 11327 | else |
11283 | 11328 | if test "$cross_compiling" = yes; then : |
11284 | 11329 | 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" ;; | |
11289 | 11336 | esac |
11290 | 11337 | |
11291 | 11338 | else |
11338 | 11385 | if (memchr (fence - 1, 0, 3) != fence - 1) |
11339 | 11386 | result |= 4; |
11340 | 11387 | } |
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 | } | |
11341 | 11397 | return result; |
11342 | 11398 | |
11343 | 11399 | ; |
12706 | 12762 | case "$host_os" in |
12707 | 12763 | # Guess yes on glibc systems. |
12708 | 12764 | *-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" ;; | |
12709 | 12767 | # Guess yes on native Windows. |
12710 | 12768 | mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; |
12711 | 12769 | # If we don't know, assume the worst. |
13352 | 13410 | |
13353 | 13411 | |
13354 | 13412 | |
13413 | ||
13414 | ||
13355 | 13415 | gl_threads_api=none |
13356 | 13416 | LIBTHREAD= |
13357 | 13417 | LTLIBTHREAD= |
13427 | 13487 | fi |
13428 | 13488 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 |
13429 | 13489 | $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 | |
13498 | 13494 | if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then |
13499 | 13495 | # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that |
13500 | 13496 | # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY. |
13707 | 13703 | |
13708 | 13704 | LIBTHREAD= |
13709 | 13705 | 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. | |
13732 | 13706 | fi |
13733 | 13707 | fi |
13734 | 13708 | 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" | |
14351 | 13709 | fi |
14352 | 13710 | fi |
14353 | 13711 | if test -z "$gl_have_pthread"; then |
14990 | 14348 | case "$host_os" in |
14991 | 14349 | # Guess yes on glibc systems. |
14992 | 14350 | *-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";; | |
14993 | 14353 | # Guess yes on FreeBSD >= 5. |
14994 | 14354 | freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; |
14995 | 14355 | freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
15012 | 14372 | netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
15013 | 14373 | # Guess yes on BeOS. |
15014 | 14374 | 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";; | |
15015 | 14377 | # Guess yes on MSVC, no on mingw. |
15016 | 14378 | mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
15017 | 14379 | /* end confdefs.h. */ |
15198 | 14560 | GL_GENERATE_ALLOCA_H_TRUE='#' |
15199 | 14561 | GL_GENERATE_ALLOCA_H_FALSE= |
15200 | 14562 | 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 | |
15201 | 14570 | |
15202 | 14571 | |
15203 | 14572 | : |
18519 | 17888 | case "$host_os" in |
18520 | 17889 | # Guess yes on glibc systems. |
18521 | 17890 | *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; |
17891 | # Guess yes on musl systems. | |
17892 | *-musl*) gl_cv_func_working_strerror="guessing yes" ;; | |
18522 | 17893 | # If we don't know, assume the worst. |
18523 | 17894 | *) gl_cv_func_working_strerror="guessing no" ;; |
18524 | 17895 | esac |
19437 | 18808 | |
19438 | 18809 | if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then |
19439 | 18810 | 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 | |
19441 | 18812 | $as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; } |
19442 | 18813 | if ${gl_cv_func_wcwidth_works+:} false; then : |
19443 | 18814 | $as_echo_n "(cached) " >&6 |
19446 | 18817 | if test "$cross_compiling" = yes; then : |
19447 | 18818 | |
19448 | 18819 | 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";; | |
19452 | 18827 | esac |
19453 | 18828 | |
19454 | 18829 | else |
19476 | 18851 | int main () |
19477 | 18852 | { |
19478 | 18853 | int result = 0; |
19479 | if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL) | |
18854 | if (setlocale (LC_ALL, "en_US.UTF-8") != NULL) | |
19480 | 18855 | { |
19481 | 18856 | if (wcwidth (0x0301) > 0) |
19482 | 18857 | result |= 1; |
19486 | 18861 | result |= 4; |
19487 | 18862 | if (wcwidth (0xFF1A) == 0) |
19488 | 18863 | result |= 8; |
18864 | if (wcwidth (0x2202) > 1) | |
18865 | result |= 16; | |
19489 | 18866 | } |
19490 | 18867 | return result; |
19491 | 18868 | } |
19567 | 18944 | gl_gnulib_enabled_threadlib=false |
19568 | 18945 | gl_gnulib_enabled_vasnprintf=false |
19569 | 18946 | 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 | |
19570 | 18951 | gl_gnulib_enabled_xsize=false |
19571 | 18952 | func_gl_gnulib_m4code_btowc () |
19572 | 18953 | { |
20589 | 19970 | |
20590 | 19971 | gl_gnulib_enabled_lock=true |
20591 | 19972 | 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 | |
20592 | 19985 | fi |
20593 | 19986 | } |
20594 | 19987 | func_gl_gnulib_m4code_mbtowc () |
20597 | 19990 | |
20598 | 19991 | |
20599 | 19992 | |
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 | |
20602 | 20010 | fi |
20603 | 20011 | |
20604 | if test $REPLACE_MBTOWC = 1; then | |
20012 | if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then | |
20605 | 20013 | |
20606 | 20014 | |
20607 | 20015 | |
21408 | 20816 | { |
21409 | 20817 | if ! $gl_gnulib_enabled_threadlib; then |
21410 | 20818 | |
21411 | ||
21412 | ||
21413 | ||
21414 | 20819 | gl_gnulib_enabled_threadlib=true |
21415 | 20820 | fi |
21416 | 20821 | } |
21688 | 21093 | else |
21689 | 21094 | if test $REPLACE_MBSTATE_T = 1; then |
21690 | 21095 | 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 | |
21698 | 21160 | $as_echo_n "checking whether wcrtomb return value is correct... " >&6; } |
21699 | 21161 | if ${gl_cv_func_wcrtomb_retval+:} false; then : |
21700 | 21162 | $as_echo_n "(cached) " >&6 |
21805 | 21267 | gl_gnulib_enabled_wcrtomb=true |
21806 | 21268 | fi |
21807 | 21269 | } |
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 | } | |
21808 | 21354 | func_gl_gnulib_m4code_xsize () |
21809 | 21355 | { |
21810 | 21356 | if ! $gl_gnulib_enabled_xsize; then |
21847 | 21393 | fi |
21848 | 21394 | if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then |
21849 | 21395 | 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 | |
21850 | 21399 | fi |
21851 | 21400 | if test $ac_use_included_regex = yes; then |
21852 | 21401 | func_gl_gnulib_m4code_btowc |
22075 | 21624 | else |
22076 | 21625 | gl_GNULIB_ENABLED_wcrtomb_TRUE='#' |
22077 | 21626 | 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= | |
22078 | 21659 | fi |
22079 | 21660 | |
22080 | 21661 | if $gl_gnulib_enabled_xsize; then |
24750 | 24331 | as_fn_error $? "conditional \"gl_GNULIB_ENABLED_wcrtomb\" was never defined. |
24751 | 24332 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
24752 | 24333 | 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 | |
24753 | 24350 | if test -z "${gl_GNULIB_ENABLED_xsize_TRUE}" && test -z "${gl_GNULIB_ENABLED_xsize_FALSE}"; then |
24754 | 24351 | as_fn_error $? "conditional \"gl_GNULIB_ENABLED_xsize\" was never defined. |
24755 | 24352 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
25219 | 24816 | # report actual input values of CONFIG_FILES etc. instead of their |
25220 | 24817 | # values after options handling. |
25221 | 24818 | 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 | |
25223 | 24820 | generated by GNU Autoconf 2.69. Invocation command line was |
25224 | 24821 | |
25225 | 24822 | CONFIG_FILES = $CONFIG_FILES |
25287 | 24884 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
25288 | 24885 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
25289 | 24886 | ac_cs_version="\\ |
25290 | GNU Texinfo config.status 6.6.91 | |
24887 | GNU Texinfo config.status 6.6.92 | |
25291 | 24888 | configured by $0, generated by GNU Autoconf 2.69, |
25292 | 24889 | with options \\"\$ac_cs_config\\" |
25293 | 24890 |
9 | 9 | # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the |
10 | 10 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
11 | 11 | # |
12 | AC_INIT([GNU Texinfo], [6.6.91], [bug-texinfo@gnu.org]) | |
12 | AC_INIT([GNU Texinfo], [6.6.92], [bug-texinfo@gnu.org]) | |
13 | 13 | |
14 | 14 | dnl Must come before AM_INIT_AUTOMAKE. |
15 | 15 | AC_CONFIG_AUX_DIR([build-aux]) |
419 | 419 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
420 | 420 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
421 | 421 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
422 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
422 | 423 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
423 | 424 | GNULIB_DUP = @GNULIB_DUP@ |
424 | 425 | GNULIB_DUP2 = @GNULIB_DUP2@ |
574 | 575 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
575 | 576 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
576 | 577 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
578 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
577 | 579 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
578 | 580 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
579 | 581 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
641 | 643 | GNULIB_WRITE = @GNULIB_WRITE@ |
642 | 644 | GNULIB__EXIT = @GNULIB__EXIT@ |
643 | 645 | GREP = @GREP@ |
646 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
644 | 647 | HAVE_ATOLL = @HAVE_ATOLL@ |
645 | 648 | HAVE_BTOWC = @HAVE_BTOWC@ |
646 | 649 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
647 | 650 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
648 | 651 | HAVE_CHOWN = @HAVE_CHOWN@ |
652 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
649 | 653 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
650 | 654 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
651 | 655 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
711 | 715 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
712 | 716 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
713 | 717 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
718 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
714 | 719 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
715 | 720 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
716 | 721 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
731 | 736 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
732 | 737 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
733 | 738 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
739 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
734 | 740 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
735 | 741 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
736 | 742 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
765 | 771 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
766 | 772 | HAVE_SETENV = @HAVE_SETENV@ |
767 | 773 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
774 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
768 | 775 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
769 | 776 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
770 | 777 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
779 | 786 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
780 | 787 | HAVE_STRSEP = @HAVE_STRSEP@ |
781 | 788 | HAVE_STRTOD = @HAVE_STRTOD@ |
789 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
782 | 790 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
783 | 791 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
784 | 792 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
857 | 865 | LIBINTL = @LIBINTL@ |
858 | 866 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
859 | 867 | LIBOBJS = @LIBOBJS@ |
860 | LIBPTH = @LIBPTH@ | |
861 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
862 | 868 | LIBS = @LIBS@ |
863 | 869 | LIBTHREAD = @LIBTHREAD@ |
864 | 870 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
874 | 880 | LTLIBINTL = @LTLIBINTL@ |
875 | 881 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
876 | 882 | LTLIBOBJS = @LTLIBOBJS@ |
877 | LTLIBPTH = @LTLIBPTH@ | |
878 | 883 | LTLIBTHREAD = @LTLIBTHREAD@ |
879 | 884 | MAKEINFO = $(MAKEINFO_ENVIRONMENT) $(PERL) $(top_builddir)/tp/texi2any |
880 | 885 | MKDIR_P = @MKDIR_P@ |
971 | 976 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
972 | 977 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
973 | 978 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
979 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
974 | 980 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
975 | 981 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
976 | 982 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1004 | 1010 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1005 | 1011 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1006 | 1012 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1013 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1007 | 1014 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1008 | 1015 | REPLACE_READ = @REPLACE_READ@ |
1009 | 1016 | REPLACE_READLINK = @REPLACE_READLINK@ |
1016 | 1023 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1017 | 1024 | REPLACE_SETENV = @REPLACE_SETENV@ |
1018 | 1025 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1026 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1019 | 1027 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1020 | 1028 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1021 | 1029 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1034 | 1042 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1035 | 1043 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1036 | 1044 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1045 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1037 | 1046 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1038 | 1047 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1039 | 1048 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
0 | 0 | @set UPDATED 25 August 2019 |
1 | 1 | @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 |
0 | 0 | @set UPDATED 25 August 2019 |
1 | 1 | @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 |
288 | 288 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
289 | 289 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
290 | 290 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
291 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
291 | 292 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
292 | 293 | GNULIB_DUP = @GNULIB_DUP@ |
293 | 294 | GNULIB_DUP2 = @GNULIB_DUP2@ |
443 | 444 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
444 | 445 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
445 | 446 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
447 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
446 | 448 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
447 | 449 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
448 | 450 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
510 | 512 | GNULIB_WRITE = @GNULIB_WRITE@ |
511 | 513 | GNULIB__EXIT = @GNULIB__EXIT@ |
512 | 514 | GREP = @GREP@ |
515 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
513 | 516 | HAVE_ATOLL = @HAVE_ATOLL@ |
514 | 517 | HAVE_BTOWC = @HAVE_BTOWC@ |
515 | 518 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
516 | 519 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
517 | 520 | HAVE_CHOWN = @HAVE_CHOWN@ |
521 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
518 | 522 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
519 | 523 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
520 | 524 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
580 | 584 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
581 | 585 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
582 | 586 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
587 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
583 | 588 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
584 | 589 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
585 | 590 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
600 | 605 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
601 | 606 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
602 | 607 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
608 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
603 | 609 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
604 | 610 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
605 | 611 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
634 | 640 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
635 | 641 | HAVE_SETENV = @HAVE_SETENV@ |
636 | 642 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
643 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
637 | 644 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
638 | 645 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
639 | 646 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
648 | 655 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
649 | 656 | HAVE_STRSEP = @HAVE_STRSEP@ |
650 | 657 | HAVE_STRTOD = @HAVE_STRTOD@ |
658 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
651 | 659 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
652 | 660 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
653 | 661 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
726 | 734 | LIBINTL = @LIBINTL@ |
727 | 735 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
728 | 736 | LIBOBJS = @LIBOBJS@ |
729 | LIBPTH = @LIBPTH@ | |
730 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
731 | 737 | LIBS = @LIBS@ |
732 | 738 | LIBTHREAD = @LIBTHREAD@ |
733 | 739 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
743 | 749 | LTLIBINTL = @LTLIBINTL@ |
744 | 750 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
745 | 751 | LTLIBOBJS = @LTLIBOBJS@ |
746 | LTLIBPTH = @LTLIBPTH@ | |
747 | 752 | LTLIBTHREAD = @LTLIBTHREAD@ |
748 | 753 | |
749 | 754 | # Use the programs built in our distribution, taking account of possible |
843 | 848 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
844 | 849 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
845 | 850 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
851 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
846 | 852 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
847 | 853 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
848 | 854 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
876 | 882 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
877 | 883 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
878 | 884 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
885 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
879 | 886 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
880 | 887 | REPLACE_READ = @REPLACE_READ@ |
881 | 888 | REPLACE_READLINK = @REPLACE_READLINK@ |
888 | 895 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
889 | 896 | REPLACE_SETENV = @REPLACE_SETENV@ |
890 | 897 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
898 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
891 | 899 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
892 | 900 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
893 | 901 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
906 | 914 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
907 | 915 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
908 | 916 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
917 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
909 | 918 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
910 | 919 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
911 | 920 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
0 | 0 | @set UPDATED 25 August 2019 |
1 | 1 | @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 |
0 | 0 | @set UPDATED 25 August 2019 |
1 | 1 | @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 |
98 | 98 | alloca.h: alloca.in.h $(top_builddir)/config.status |
99 | 99 | $(AM_V_GEN)rm -f $@-t $@ && \ |
100 | 100 | { 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; \ | |
102 | 102 | } > $@-t && \ |
103 | 103 | mv -f $@-t $@ |
104 | 104 | else |
1007 | 1007 | -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ |
1008 | 1008 | -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ |
1009 | 1009 | -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ |
1010 | -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \ | |
1010 | 1011 | -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ |
1011 | 1012 | -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ |
1012 | 1013 | -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ |
1020 | 1021 | -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ |
1021 | 1022 | -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ |
1022 | 1023 | -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ |
1024 | -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ | |
1023 | 1025 | -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ |
1026 | -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ | |
1024 | 1027 | -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ |
1025 | 1028 | -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ |
1026 | 1029 | -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ |
1038 | 1041 | -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ |
1039 | 1042 | -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ |
1040 | 1043 | -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ |
1044 | -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ | |
1041 | 1045 | -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ |
1042 | 1046 | -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ |
1047 | -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ | |
1043 | 1048 | -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ |
1044 | 1049 | -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ |
1045 | 1050 | -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ |
1048 | 1053 | -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ |
1049 | 1054 | -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ |
1050 | 1055 | -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ |
1056 | -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ | |
1051 | 1057 | -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ |
1052 | 1058 | -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ |
1053 | 1059 | -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ |
1055 | 1061 | -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ |
1056 | 1062 | -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ |
1057 | 1063 | -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ |
1064 | -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ | |
1058 | 1065 | -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ |
1059 | 1066 | -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ |
1060 | 1067 | -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ |
1061 | 1068 | -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ |
1069 | -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ | |
1062 | 1070 | -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ |
1071 | -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ | |
1063 | 1072 | -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ |
1064 | 1073 | -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ |
1065 | 1074 | -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ |
1365 | 1374 | -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ |
1366 | 1375 | -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ |
1367 | 1376 | -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ |
1377 | -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \ | |
1368 | 1378 | -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ |
1369 | 1379 | -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ |
1370 | 1380 | -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ |
1415 | 1425 | -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ |
1416 | 1426 | < $(srcdir)/unistd.in.h | \ |
1417 | 1427 | sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ |
1428 | -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ | |
1418 | 1429 | -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ |
1419 | 1430 | -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ |
1420 | 1431 | -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ |
1763 | 1774 | |
1764 | 1775 | ## end gnulib module wcwidth |
1765 | 1776 | |
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 | ||
1766 | 1821 | ## begin gnulib module xalloc |
1767 | 1822 | |
1768 | 1823 | libgnu_a_SOURCES += xmalloc.c |
348 | 348 | ./$(DEPDIR)/strstr.Po ./$(DEPDIR)/unistd.Po \ |
349 | 349 | ./$(DEPDIR)/vasnprintf.Po ./$(DEPDIR)/vasprintf.Po \ |
350 | 350 | ./$(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 \ | |
352 | 354 | ./$(DEPDIR)/xmalloc.Po ./$(DEPDIR)/xsize.Po \ |
353 | 355 | glthread/$(DEPDIR)/lock.Po glthread/$(DEPDIR)/threadlib.Po \ |
354 | 356 | uniwidth/$(DEPDIR)/width.Po |
492 | 494 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
493 | 495 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
494 | 496 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
497 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
495 | 498 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
496 | 499 | GNULIB_DUP = @GNULIB_DUP@ |
497 | 500 | GNULIB_DUP2 = @GNULIB_DUP2@ |
647 | 650 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
648 | 651 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
649 | 652 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
653 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
650 | 654 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
651 | 655 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
652 | 656 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
714 | 718 | GNULIB_WRITE = @GNULIB_WRITE@ |
715 | 719 | GNULIB__EXIT = @GNULIB__EXIT@ |
716 | 720 | GREP = @GREP@ |
721 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
717 | 722 | HAVE_ATOLL = @HAVE_ATOLL@ |
718 | 723 | HAVE_BTOWC = @HAVE_BTOWC@ |
719 | 724 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
720 | 725 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
721 | 726 | HAVE_CHOWN = @HAVE_CHOWN@ |
727 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
722 | 728 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
723 | 729 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
724 | 730 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
784 | 790 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
785 | 791 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
786 | 792 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
793 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
787 | 794 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
788 | 795 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
789 | 796 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
804 | 811 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
805 | 812 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
806 | 813 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
814 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
807 | 815 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
808 | 816 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
809 | 817 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
838 | 846 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
839 | 847 | HAVE_SETENV = @HAVE_SETENV@ |
840 | 848 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
849 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
841 | 850 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
842 | 851 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
843 | 852 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
852 | 861 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
853 | 862 | HAVE_STRSEP = @HAVE_STRSEP@ |
854 | 863 | HAVE_STRTOD = @HAVE_STRTOD@ |
864 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
855 | 865 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
856 | 866 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
857 | 867 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
930 | 940 | LIBINTL = @LIBINTL@ |
931 | 941 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
932 | 942 | LIBOBJS = @LIBOBJS@ |
933 | LIBPTH = @LIBPTH@ | |
934 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
935 | 943 | LIBS = @LIBS@ |
936 | 944 | LIBTHREAD = @LIBTHREAD@ |
937 | 945 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
947 | 955 | LTLIBINTL = @LTLIBINTL@ |
948 | 956 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
949 | 957 | LTLIBOBJS = @LTLIBOBJS@ |
950 | LTLIBPTH = @LTLIBPTH@ | |
951 | 958 | LTLIBTHREAD = @LTLIBTHREAD@ |
952 | 959 | MAKEINFO = @MAKEINFO@ |
953 | 960 | MKDIR_P = @MKDIR_P@ |
1044 | 1051 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1045 | 1052 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1046 | 1053 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1054 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1047 | 1055 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1048 | 1056 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1049 | 1057 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1077 | 1085 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1078 | 1086 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1079 | 1087 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1088 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1080 | 1089 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1081 | 1090 | REPLACE_READ = @REPLACE_READ@ |
1082 | 1091 | REPLACE_READLINK = @REPLACE_READLINK@ |
1089 | 1098 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1090 | 1099 | REPLACE_SETENV = @REPLACE_SETENV@ |
1091 | 1100 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1101 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1092 | 1102 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1093 | 1103 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1094 | 1104 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1107 | 1117 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1108 | 1118 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1109 | 1119 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1120 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1110 | 1121 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1111 | 1122 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1112 | 1123 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
1247 | 1258 | float+.h printf-args.c printf-args.h printf-parse.c \ |
1248 | 1259 | printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \ |
1249 | 1260 | 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 | |
1251 | 1265 | BUILT_SOURCES = $(ALLOCA_H) $(ARGZ_H) $(ERRNO_H) $(FLOAT_H) \ |
1252 | 1266 | $(GETOPT_H) $(GETOPT_CDEFS_H) $(am__append_2) $(LIMITS_H) \ |
1253 | 1267 | $(am__append_5) $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) \ |
1288 | 1302 | regex_internal.c regexec.c stpcpy.c strcasecmp.c strncasecmp.c \ |
1289 | 1303 | strcasestr.c strdup.c strerror.c strerror-override.c strndup.c \ |
1290 | 1304 | 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 | |
1292 | 1308 | |
1293 | 1309 | # Use this preprocessor expression to decide whether #include_next works. |
1294 | 1310 | # Do not rely on a 'configure'-time test for this, since the expression |
1455 | 1471 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ # am--include-marker |
1456 | 1472 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ # am--include-marker |
1457 | 1473 | @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 | |
1458 | 1478 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ # am--include-marker |
1459 | 1479 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ # am--include-marker |
1460 | 1480 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@ # am--include-marker |
1754 | 1774 | -rm -f ./$(DEPDIR)/wcrtomb.Po |
1755 | 1775 | -rm -f ./$(DEPDIR)/wctype-h.Po |
1756 | 1776 | -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 | |
1757 | 1781 | -rm -f ./$(DEPDIR)/xalloc-die.Po |
1758 | 1782 | -rm -f ./$(DEPDIR)/xmalloc.Po |
1759 | 1783 | -rm -f ./$(DEPDIR)/xsize.Po |
1866 | 1890 | -rm -f ./$(DEPDIR)/wcrtomb.Po |
1867 | 1891 | -rm -f ./$(DEPDIR)/wctype-h.Po |
1868 | 1892 | -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 | |
1869 | 1897 | -rm -f ./$(DEPDIR)/xalloc-die.Po |
1870 | 1898 | -rm -f ./$(DEPDIR)/xmalloc.Po |
1871 | 1899 | -rm -f ./$(DEPDIR)/xsize.Po |
1916 | 1944 | @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status |
1917 | 1945 | @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ |
1918 | 1946 | @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; \ | |
1920 | 1948 | @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ |
1921 | 1949 | @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ |
1922 | 1950 | @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status |
2312 | 2340 | -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ |
2313 | 2341 | -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ |
2314 | 2342 | -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ |
2343 | -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \ | |
2315 | 2344 | -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ |
2316 | 2345 | -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ |
2317 | 2346 | -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ |
2325 | 2354 | -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ |
2326 | 2355 | -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ |
2327 | 2356 | -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ |
2357 | -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ | |
2328 | 2358 | -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ |
2359 | -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ | |
2329 | 2360 | -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ |
2330 | 2361 | -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ |
2331 | 2362 | -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ |
2343 | 2374 | -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ |
2344 | 2375 | -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ |
2345 | 2376 | -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ |
2377 | -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ | |
2346 | 2378 | -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ |
2347 | 2379 | -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ |
2380 | -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ | |
2348 | 2381 | -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ |
2349 | 2382 | -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ |
2350 | 2383 | -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ |
2353 | 2386 | -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ |
2354 | 2387 | -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ |
2355 | 2388 | -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ |
2389 | -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ | |
2356 | 2390 | -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ |
2357 | 2391 | -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ |
2358 | 2392 | -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ |
2360 | 2394 | -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ |
2361 | 2395 | -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ |
2362 | 2396 | -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ |
2397 | -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ | |
2363 | 2398 | -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ |
2364 | 2399 | -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ |
2365 | 2400 | -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ |
2366 | 2401 | -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ |
2402 | -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ | |
2367 | 2403 | -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ |
2404 | -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ | |
2368 | 2405 | -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ |
2369 | 2406 | -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ |
2370 | 2407 | -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ |
2521 | 2558 | -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ |
2522 | 2559 | -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ |
2523 | 2560 | -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ |
2561 | -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \ | |
2524 | 2562 | -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ |
2525 | 2563 | -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ |
2526 | 2564 | -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ |
2571 | 2609 | -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ |
2572 | 2610 | < $(srcdir)/unistd.in.h | \ |
2573 | 2611 | sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ |
2612 | -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ | |
2574 | 2613 | -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ |
2575 | 2614 | -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ |
2576 | 2615 | -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 | ||
0 | 16 | #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))) | |
2 | 20 | # 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__))) | |
5 | 24 | /* _Noreturn works as-is. */ |
6 | 25 | # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C |
7 | 26 | # define _Noreturn __attribute__ ((__noreturn__)) |
35 | 35 | |
36 | 36 | #ifndef alloca |
37 | 37 | # 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 | |
38 | 44 | # define alloca __builtin_alloca |
39 | 45 | # elif defined _AIX |
40 | 46 | # define alloca __alloca |
339 | 339 | semantics. |
340 | 340 | |
341 | 341 | 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 | |
343 | 343 | __GNUC_GNU_INLINE__ macro definitions. */ |
344 | 344 | #if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ |
345 | 345 | || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ |
118 | 118 | # endif |
119 | 119 | # endif |
120 | 120 | |
121 | #define program_name getprogname () | |
121 | # define program_name getprogname () | |
122 | 122 | |
123 | 123 | # if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r |
124 | 124 | # define __strerror_r strerror_r |
69 | 69 | p = "?"; |
70 | 70 | return last_component (p); |
71 | 71 | # 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 */ | |
73 | 73 | const char *p = __argv && __argv[0] ? __argv[0] : "?"; |
74 | 74 | return last_component (p); |
75 | # elif HAVE_VAR___PROGNAME /* OpenBSD, QNX */ | |
75 | # elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */ | |
76 | 76 | /* https://man.openbsd.org/style.9 */ |
77 | 77 | /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ |
78 | 78 | /* Be careful to declare this only when we absolutely need it |
81 | 81 | malfunction (have zero length) with Fedora 25's glibc. */ |
82 | 82 | extern char *__progname; |
83 | 83 | const char *p = __progname; |
84 | # if defined __ANDROID__ | |
85 | return last_component (p); | |
86 | # else | |
84 | 87 | return p && p[0] ? p : "?"; |
88 | # endif | |
85 | 89 | # elif _AIX /* AIX */ |
86 | 90 | /* Idea by Bastien ROUCARIÈS, |
87 | 91 | https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html |
228 | 232 | { |
229 | 233 | char *name = buf.pr_fname; |
230 | 234 | size_t namesize = sizeof buf.pr_fname; |
235 | /* It may not be NUL-terminated. */ | |
231 | 236 | char *namenul = memchr (name, '\0', namesize); |
232 | 237 | size_t namelen = namenul ? namenul - name : namesize; |
233 | 238 | char *namecopy = malloc (namelen + 1); |
234 | 239 | if (namecopy) |
235 | 240 | { |
236 | namecopy[namelen] = 0; | |
241 | namecopy[namelen] = '\0'; | |
237 | 242 | return memcpy (namecopy, name, namelen); |
238 | 243 | } |
239 | 244 | } |
183 | 183 | |
184 | 184 | #include <string.h> |
185 | 185 | |
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__) */ )) | |
189 | 196 | # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 |
190 | 197 | #else |
191 | 198 | # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 |
14 | 14 | along with this program; if not, see <https://www.gnu.org/licenses/>. */ |
15 | 15 | |
16 | 16 | /* 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. */ | |
19 | 18 | |
20 | 19 | #include <config.h> |
21 | 20 | |
499 | 498 | |
500 | 499 | /* ========================================================================= */ |
501 | 500 | |
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 | |
677 | 502 | |
678 | 503 | #endif |
679 | 504 | |
680 | 505 | /* ========================================================================= */ |
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 | /* ========================================================================= */ |
14 | 14 | along with this program; if not, see <https://www.gnu.org/licenses/>. */ |
15 | 15 | |
16 | 16 | /* 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. */ | |
19 | 18 | |
20 | 19 | /* This file contains locking primitives for use with a given thread library. |
21 | 20 | It does not contain primitives for creating threads or for other |
79 | 78 | |
80 | 79 | #include <errno.h> |
81 | 80 | #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 | |
82 | 91 | |
83 | 92 | /* ========================================================================= */ |
84 | 93 | |
155 | 164 | pthread_rwlockattr_init |
156 | 165 | */ |
157 | 166 | # 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 ()) | |
159 | 169 | # endif |
160 | 170 | |
161 | 171 | # else |
394 | 404 | |
395 | 405 | /* ========================================================================= */ |
396 | 406 | |
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 | ||
673 | 407 | #if USE_WINDOWS_THREADS |
674 | 408 | |
675 | 409 | # define WIN32_LEAN_AND_MEAN /* avoid including junk */ |
676 | 410 | # include <windows.h> |
411 | ||
412 | # include "windows-mutex.h" | |
413 | # include "windows-rwlock.h" | |
414 | # include "windows-recmutex.h" | |
415 | # include "windows-once.h" | |
677 | 416 | |
678 | 417 | # ifdef __cplusplus |
679 | 418 | extern "C" { |
690 | 429 | /* There is no way to statically initialize a CRITICAL_SECTION. It needs |
691 | 430 | to be done lazily, once only. For this we need spinlocks. */ |
692 | 431 | |
693 | typedef struct { volatile int done; volatile long started; } gl_spinlock_t; | |
694 | ||
695 | 432 | /* -------------------------- gl_lock_t datatype -------------------------- */ |
696 | 433 | |
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; | |
703 | 435 | # define gl_lock_define(STORAGECLASS, NAME) \ |
704 | 436 | STORAGECLASS gl_lock_t NAME; |
705 | 437 | # define gl_lock_define_initialized(STORAGECLASS, NAME) \ |
706 | 438 | STORAGECLASS gl_lock_t NAME = gl_lock_initializer; |
707 | 439 | # define gl_lock_initializer \ |
708 | { { 0, -1 } } | |
440 | GLWTHREAD_MUTEX_INIT | |
709 | 441 | # define glthread_lock_init(LOCK) \ |
710 | (glthread_lock_init_func (LOCK), 0) | |
442 | (glwthread_mutex_init (LOCK), 0) | |
711 | 443 | # define glthread_lock_lock(LOCK) \ |
712 | glthread_lock_lock_func (LOCK) | |
444 | glwthread_mutex_lock (LOCK) | |
713 | 445 | # define glthread_lock_unlock(LOCK) \ |
714 | glthread_lock_unlock_func (LOCK) | |
446 | glwthread_mutex_unlock (LOCK) | |
715 | 447 | # 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) | |
721 | 449 | |
722 | 450 | /* ------------------------- gl_rwlock_t datatype ------------------------- */ |
723 | 451 | |
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; | |
745 | 453 | # define gl_rwlock_define(STORAGECLASS, NAME) \ |
746 | 454 | STORAGECLASS gl_rwlock_t NAME; |
747 | 455 | # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ |
748 | 456 | STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; |
749 | 457 | # define gl_rwlock_initializer \ |
750 | { { 0, -1 } } | |
458 | GLWTHREAD_RWLOCK_INIT | |
751 | 459 | # define glthread_rwlock_init(LOCK) \ |
752 | (glthread_rwlock_init_func (LOCK), 0) | |
460 | (glwthread_rwlock_init (LOCK), 0) | |
753 | 461 | # define glthread_rwlock_rdlock(LOCK) \ |
754 | glthread_rwlock_rdlock_func (LOCK) | |
462 | glwthread_rwlock_rdlock (LOCK) | |
755 | 463 | # define glthread_rwlock_wrlock(LOCK) \ |
756 | glthread_rwlock_wrlock_func (LOCK) | |
464 | glwthread_rwlock_wrlock (LOCK) | |
757 | 465 | # define glthread_rwlock_unlock(LOCK) \ |
758 | glthread_rwlock_unlock_func (LOCK) | |
466 | glwthread_rwlock_unlock (LOCK) | |
759 | 467 | # 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) | |
766 | 469 | |
767 | 470 | /* --------------------- gl_recursive_lock_t datatype --------------------- */ |
768 | 471 | |
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; | |
781 | 473 | # define gl_recursive_lock_define(STORAGECLASS, NAME) \ |
782 | 474 | STORAGECLASS gl_recursive_lock_t NAME; |
783 | 475 | # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ |
784 | 476 | STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; |
785 | 477 | # define gl_recursive_lock_initializer \ |
786 | { { 0, -1 }, 0, 0 } | |
478 | GLWTHREAD_RECMUTEX_INIT | |
787 | 479 | # define glthread_recursive_lock_init(LOCK) \ |
788 | (glthread_recursive_lock_init_func (LOCK), 0) | |
480 | (glwthread_recmutex_init (LOCK), 0) | |
789 | 481 | # define glthread_recursive_lock_lock(LOCK) \ |
790 | glthread_recursive_lock_lock_func (LOCK) | |
482 | glwthread_recmutex_lock (LOCK) | |
791 | 483 | # define glthread_recursive_lock_unlock(LOCK) \ |
792 | glthread_recursive_lock_unlock_func (LOCK) | |
484 | glwthread_recmutex_unlock (LOCK) | |
793 | 485 | # 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) | |
799 | 487 | |
800 | 488 | /* -------------------------- gl_once_t datatype -------------------------- */ |
801 | 489 | |
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; | |
809 | 491 | # define gl_once_define(STORAGECLASS, NAME) \ |
810 | STORAGECLASS gl_once_t NAME = { -1, -1 }; | |
492 | STORAGECLASS gl_once_t NAME = GLWTHREAD_ONCE_INIT; | |
811 | 493 | # 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) | |
814 | 495 | |
815 | 496 | # ifdef __cplusplus |
816 | 497 | } |
820 | 501 | |
821 | 502 | /* ========================================================================= */ |
822 | 503 | |
823 | #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) | |
504 | #if !(USE_POSIX_THREADS || USE_WINDOWS_THREADS) | |
824 | 505 | |
825 | 506 | /* Provide dummy implementation if threads are not supported. */ |
826 | 507 |
110 | 110 | Subtract 1 for the sign bit if T is signed, and then add 1 more for |
111 | 111 | a minus sign if needed. |
112 | 112 | |
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 | |
115 | 115 | applied to unsigned types of size 2, 4, 16, ... bytes. */ |
116 | 116 | #define INT_STRLEN_BOUND(t) \ |
117 | 117 | (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ |
280 | 280 | |
281 | 281 | The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators |
282 | 282 | 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. | |
284 | 286 | These macros work correctly on all known practical hosts, and do not rely |
285 | 287 | on undefined behavior due to signed arithmetic overflow. |
286 | 288 | |
308 | 310 | arguments should not have side effects. |
309 | 311 | |
310 | 312 | 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. | |
314 | 318 | |
315 | 319 | Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, |
316 | 320 | A % B, and A << B would overflow, respectively. */ |
347 | 351 | /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. |
348 | 352 | Return 1 if the result overflows. See above for restrictions. */ |
349 | 353 | #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) | |
351 | 356 | #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) | |
353 | 359 | #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)) | |
355 | 369 | |
356 | 370 | /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: |
357 | 371 | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 |
378 | 392 | signed char: \ |
379 | 393 | _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ |
380 | 394 | 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), \ | |
381 | 398 | short int: \ |
382 | 399 | _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ |
383 | 400 | 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), \ | |
384 | 404 | int: \ |
385 | 405 | _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ |
386 | 406 | 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), \ | |
387 | 410 | long int: \ |
388 | 411 | _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ |
389 | 412 | 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), \ | |
390 | 416 | long long int: \ |
391 | 417 | _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 | ||
394 | 444 | # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ |
395 | 445 | (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) \ | |
398 | 449 | : 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) \ | |
401 | 453 | : 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)) \ | |
404 | 459 | : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) |
405 | 460 | # ifdef LLONG_MAX |
406 | 461 | # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ |
407 | 462 | (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)) \ | |
408 | 476 | ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ |
409 | 477 | 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)) | |
416 | 480 | # endif |
417 | 481 | #endif |
418 | 482 | |
421 | 485 | overflow problems. *R's type is T, with extrema TMIN and TMAX. |
422 | 486 | T must be a signed integer type. Return 1 if the result overflows. */ |
423 | 487 | #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) \ | |
431 | 489 | ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ |
432 | 490 | : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) |
433 | 491 | |
451 | 509 | #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ |
452 | 510 | ((t) ((ut) (a) op (ut) (b))) |
453 | 511 | |
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 | ||
454 | 565 | #endif /* _GL_INTPROPS_H */ |
376 | 376 | /* The list of encodings is taken from "List of OS/2 Codepages" |
377 | 377 | by Alex Taylor: |
378 | 378 | <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" } | |
400 | 539 | # define alias_table_defined |
401 | 540 | # endif |
402 | 541 | # if defined VMS /* OpenVMS */ |
786 | 925 | encoding is the best bet. */ |
787 | 926 | sprintf (buf, "CP%u", GetACP ()); |
788 | 927 | } |
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; | |
790 | 934 | |
791 | 935 | # elif defined OS2 |
792 | 936 |
33 | 33 | # include "localcharset.h" |
34 | 34 | # include "streq.h" |
35 | 35 | # include "verify.h" |
36 | # include "glthread/lock.h" | |
36 | 37 | |
37 | 38 | # ifndef FALLTHROUGH |
38 | 39 | # if __GNUC__ < 7 |
74 | 75 | return enc_other; |
75 | 76 | } |
76 | 77 | |
77 | #if GNULIB_WCHAR_SINGLE | |
78 | # if GNULIB_WCHAR_SINGLE | |
78 | 79 | /* When we know that the locale does not change, provide a speedup by |
79 | 80 | caching the value of locale_enc. */ |
80 | 81 | static int cached_locale_enc = -1; |
85 | 86 | cached_locale_enc = locale_enc (); |
86 | 87 | return cached_locale_enc; |
87 | 88 | } |
88 | #else | |
89 | # else | |
89 | 90 | /* 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) | |
92 | 97 | |
93 | 98 | verify (sizeof (mbstate_t) >= 4); |
94 | 99 | |
119 | 124 | char buf[4]; |
120 | 125 | const char *p; |
121 | 126 | size_t m; |
127 | enc_t enc; | |
128 | int res; | |
122 | 129 | |
123 | 130 | switch (nstate) |
124 | 131 | { |
151 | 158 | |
152 | 159 | /* Here m > 0. */ |
153 | 160 | |
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) | |
190 | 170 | { |
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) | |
195 | 179 | { |
196 | if (c < 0xe0) | |
180 | if (m == 1) | |
181 | goto incomplete; | |
182 | else /* m >= 2 */ | |
197 | 183 | { |
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) | |
206 | 187 | { |
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; | |
213 | 193 | } |
214 | 194 | } |
215 | else if (c <= 0xf4) | |
195 | } | |
196 | else if (c < 0xf0) | |
197 | { | |
198 | if (m == 1) | |
199 | goto incomplete; | |
200 | else | |
216 | 201 | { |
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)) | |
220 | 207 | { |
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 */ | |
226 | 211 | { |
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) | |
230 | 215 | { |
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; | |
235 | 222 | } |
236 | 223 | } |
237 | 224 | } |
238 | 225 | } |
239 | 226 | } |
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) | |
249 | 228 | { |
250 | unsigned char c = (unsigned char) p[0]; | |
251 | ||
252 | if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) | |
229 | if (m == 1) | |
253 | 230 | goto incomplete; |
254 | } | |
255 | if (m == 2) | |
256 | { | |
257 | unsigned char c = (unsigned char) p[0]; | |
258 | ||
259 | if (c == 0x8f) | |
231 | else | |
260 | 232 | { |
261 | 233 | unsigned char c2 = (unsigned char) p[1]; |
262 | 234 | |
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))) | |
319 | 238 | { |
320 | 239 | if (m == 2) |
321 | 240 | goto incomplete; |
322 | else /* m == 3 */ | |
241 | else | |
323 | 242 | { |
324 | 243 | unsigned char c3 = (unsigned char) p[2]; |
325 | 244 | |
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 | } | |
328 | 265 | } |
329 | 266 | } |
330 | 267 | } |
331 | 268 | } |
332 | goto invalid; | |
333 | 269 | } |
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) | |
336 | 288 | { |
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; | |
346 | 292 | } |
347 | 293 | |
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]; | |
351 | 440 | } |
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 (); | |
374 | 443 | } |
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); | |
375 | 451 | } |
376 | 452 | } |
377 | 453 |
21 | 21 | |
22 | 22 | #include <stdbool.h> |
23 | 23 | #include <stddef.h> /* for NULL, in case a nonstandard string.h lacks it */ |
24 | #include <stdlib.h> | |
24 | 25 | |
25 | 26 | #include "malloca.h" |
26 | 27 | #include "mbuiter.h" |
0 | 0 | # 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 | ||
1 | 17 | # POSIX states that when the character is found, memchr must not read extra |
2 | 18 | # bytes in an overestimated length (for example, where memchr is used to |
3 | 19 | # implement strnlen). However, we use a safe word read to provide a speedup. |
94 | 94 | |
95 | 95 | /* Gnulib can define its own status codes, as described in the page |
96 | 96 | "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>. | |
98 | 98 | Our status codes are composed of |
99 | 99 | - 0xE0000000, mandatory for all user-defined status codes, |
100 | 100 | - 0x474E550, a API identifier ("GNU"), |
105 | 105 | # if defined _MSC_VER |
106 | 106 | /* A compiler that supports __try/__except, as described in the page |
107 | 107 | "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>. | |
109 | 109 | With __try/__except, we can use the multithread-safe exception handling. */ |
110 | 110 | |
111 | 111 | # ifdef __cplusplus |
75 | 75 | memmove (buf + 2, codeset, codesetlen + 1); |
76 | 76 | else |
77 | 77 | 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 | |
80 | 85 | return codeset; |
86 | #endif | |
81 | 87 | } |
82 | 88 | #endif |
83 | 89 |
1799 | 1799 | token->word_char = 0; |
1800 | 1800 | #ifdef RE_ENABLE_I18N |
1801 | 1801 | 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))) | |
1804 | 1804 | { |
1805 | 1805 | token->type = CHARACTER; |
1806 | 1806 | token->mb_partial = 1; |
1987 | 1987 | token->type = OP_PERIOD; |
1988 | 1988 | break; |
1989 | 1989 | 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) | |
1992 | 1992 | { |
1993 | 1993 | char prev = re_string_peek_byte (input, -1); |
1994 | 1994 | if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') |
1998 | 1998 | token->opr.ctx_type = LINE_FIRST; |
1999 | 1999 | break; |
2000 | 2000 | 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)) | |
2003 | 2003 | { |
2004 | 2004 | re_token_t next; |
2005 | 2005 | re_string_skip_bytes (input, 1); |
2033 | 2033 | token->opr.c = c; |
2034 | 2034 | |
2035 | 2035 | #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))) | |
2038 | 2038 | { |
2039 | 2039 | token->type = CHARACTER; |
2040 | 2040 | return 1; |
2332 | 2332 | } |
2333 | 2333 | FALLTHROUGH; |
2334 | 2334 | 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)) | |
2337 | 2337 | { |
2338 | 2338 | *err = REG_ERPAREN; |
2339 | 2339 | return NULL; |
1292 | 1292 | else if (naccepted) |
1293 | 1293 | { |
1294 | 1294 | 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)) | |
1297 | 1299 | return -1; |
1298 | 1300 | } |
1299 | 1301 | } |
2201 | 2203 | int naccepted; |
2202 | 2204 | /* Check the node can accept "multi byte". */ |
2203 | 2205 | 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])) | |
2207 | 2209 | /* The node can't accept the "multi byte", or the |
2208 | 2210 | 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". */ | |
2210 | 2212 | naccepted = 0; |
2211 | 2213 | /* Otherwise, it is sure that the node could accept |
2212 | 2214 | 'naccepted' bytes input. */ |
3779 | 3781 | /* FIXME: I don't think this if is needed, as both '\n' |
3780 | 3782 | and '\0' are char_len == 1. */ |
3781 | 3783 | /* '.' 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')) | |
3786 | 3788 | return 0; |
3787 | 3789 | return char_len; |
3788 | 3790 | } |
115 | 115 | #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ |
116 | 116 | && ! defined __GLIBC__ |
117 | 117 | # 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> | |
118 | 125 | #endif |
119 | 126 | |
120 | 127 | /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include |
305 | 305 | _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); |
306 | 306 | _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); |
307 | 307 | # else |
308 | # if !@HAVE_MBTOWC@ | |
309 | _GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); | |
310 | # endif | |
308 | 311 | _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); |
309 | 312 | # endif |
310 | 313 | _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 | |
311 | 320 | #endif |
312 | 321 | |
313 | 322 | #if @GNULIB_MKDTEMP@ |
572 | 581 | |
573 | 582 | |
574 | 583 | #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@ | |
576 | 593 | _GL_FUNCDECL_SYS (random, long, (void)); |
577 | # endif | |
594 | # endif | |
578 | 595 | _GL_CXXALIAS_SYS (random, long, (void)); |
596 | # endif | |
579 | 597 | _GL_CXXALIASWARN (random); |
580 | 598 | #elif defined GNULIB_POSIXCHECK |
581 | 599 | # undef random |
586 | 604 | #endif |
587 | 605 | |
588 | 606 | #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@ | |
590 | 616 | _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); |
591 | # endif | |
617 | # endif | |
592 | 618 | _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); |
619 | # endif | |
593 | 620 | _GL_CXXALIASWARN (srandom); |
594 | 621 | #elif defined GNULIB_POSIXCHECK |
595 | 622 | # undef srandom |
600 | 627 | #endif |
601 | 628 | |
602 | 629 | #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@ | |
604 | 642 | _GL_FUNCDECL_SYS (initstate, char *, |
605 | 643 | (unsigned int seed, char *buf, size_t buf_size) |
606 | 644 | _GL_ARG_NONNULL ((2))); |
607 | # endif | |
645 | # endif | |
608 | 646 | _GL_CXXALIAS_SYS (initstate, char *, |
609 | 647 | (unsigned int seed, char *buf, size_t buf_size)); |
648 | # endif | |
610 | 649 | _GL_CXXALIASWARN (initstate); |
611 | 650 | #elif defined GNULIB_POSIXCHECK |
612 | 651 | # undef initstate |
613 | # if HAVE_RAW_DECL_INITSTATE_R | |
652 | # if HAVE_RAW_DECL_INITSTATE | |
614 | 653 | _GL_WARN_ON_USE (initstate, "initstate is unportable - " |
615 | 654 | "use gnulib module random for portability"); |
616 | 655 | # endif |
617 | 656 | #endif |
618 | 657 | |
619 | 658 | #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@ | |
621 | 668 | _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); |
622 | # endif | |
669 | # endif | |
623 | 670 | _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); |
671 | # endif | |
624 | 672 | _GL_CXXALIASWARN (setstate); |
625 | 673 | #elif defined GNULIB_POSIXCHECK |
626 | 674 | # undef setstate |
627 | # if HAVE_RAW_DECL_SETSTATE_R | |
675 | # if HAVE_RAW_DECL_SETSTATE | |
628 | 676 | _GL_WARN_ON_USE (setstate, "setstate is unportable - " |
629 | 677 | "use gnulib module random for portability"); |
630 | 678 | # endif |
880 | 928 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
881 | 929 | # define strtod rpl_strtod |
882 | 930 | # endif |
931 | # define GNULIB_defined_strtod_function 1 | |
883 | 932 | _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) |
884 | 933 | _GL_ARG_NONNULL ((1))); |
885 | 934 | _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); |
896 | 945 | # if HAVE_RAW_DECL_STRTOD |
897 | 946 | _GL_WARN_ON_USE (strtod, "strtod is unportable - " |
898 | 947 | "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"); | |
899 | 974 | # endif |
900 | 975 | #endif |
901 | 976 |
17 | 17 | |
18 | 18 | /* Before including this file, you need to include <config.h> and |
19 | 19 | <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. | |
21 | 21 | AVAILABLE(h, h_l, j, n_l) |
22 | 22 | A macro that returns nonzero if there are |
23 | 23 | at least N_L bytes left starting at H[J]. |
51 | 51 | #define _@GUARD_PREFIX@_UNISTD_H |
52 | 52 | |
53 | 53 | /* 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 | |
55 | 58 | |
56 | 59 | /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */ |
57 | 60 | /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>. We must include |
67 | 70 | # include <stdio.h> |
68 | 71 | #endif |
69 | 72 | |
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>. */ | |
71 | 75 | /* 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__) \ | |
73 | 78 | && ! defined __GLIBC__ |
74 | 79 | # include <fcntl.h> |
75 | 80 | #endif |
112 | 117 | # include <netdb.h> |
113 | 118 | #endif |
114 | 119 | |
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 | ||
115 | 127 | /* MSVC defines off_t in <sys/types.h>. |
116 | 128 | 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. */ | |
126 | 132 | # include <sys/types.h> |
127 | 133 | #endif |
128 | 134 | |
318 | 324 | /* Assume close is always declared. */ |
319 | 325 | _GL_WARN_ON_USE (close, "close does not portably work on sockets - " |
320 | 326 | "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"); | |
321 | 345 | #endif |
322 | 346 | |
323 | 347 |
4873 | 4873 | # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \ |
4874 | 4874 | && !defined __UCLIBC__) \ |
4875 | 4875 | || (defined __APPLE__ && defined __MACH__) \ |
4876 | || defined __ANDROID__ \ | |
4876 | 4877 | || (defined _WIN32 && ! defined __CYGWIN__)) |
4877 | 4878 | fbp[1] = '%'; |
4878 | 4879 | fbp[2] = 'n'; |
4894 | 4895 | On Mac OS X 10.13 or newer, the use of %n in format strings |
4895 | 4896 | in writable memory by default crashes the program, so we |
4896 | 4897 | 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. */ | |
4897 | 4906 | /* On native Windows systems (such as mingw), we can avoid using |
4898 | 4907 | %n because: |
4899 | 4908 | - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, |
4907 | 4916 | Windows Vista, the use of %n in format strings by default |
4908 | 4917 | crashes the program. See |
4909 | 4918 | <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> | |
4911 | 4920 | So we should avoid %n in this situation. */ |
4912 | 4921 | fbp[1] = '\0'; |
4913 | 4922 | # endif |
20 | 20 | #define _GL_VERIFY_H |
21 | 21 | |
22 | 22 | |
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 | |
42 | 48 | #endif |
43 | 49 | |
44 | 50 | /* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other |
45 | 51 | system headers, defines a conflicting _Static_assert that is no |
46 | 52 | better than ours; override it. */ |
47 | #ifndef _GL_HAVE_STATIC_ASSERT | |
53 | #ifndef _GL_HAVE__STATIC_ASSERT | |
48 | 54 | # include <stddef.h> |
49 | 55 | # undef _Static_assert |
50 | 56 | #endif |
142 | 148 | which do not support _Static_assert, also do not warn about the |
143 | 149 | last declaration mentioned above. |
144 | 150 | |
145 | * GCC warns if -Wnested-externs is enabled and verify() is used | |
151 | * GCC warns if -Wnested-externs is enabled and 'verify' is used | |
146 | 152 | 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. | |
148 | 154 | |
149 | 155 | * In C++, any struct definition inside sizeof is invalid. |
150 | 156 | Use a template type to work around the problem. */ |
196 | 202 | #endif |
197 | 203 | |
198 | 204 | /* 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. | |
201 | 210 | |
202 | 211 | Unfortunately, unlike C11, this implementation must appear as an |
203 | 212 | ordinary declaration, and cannot appear inside struct { ... }. */ |
204 | 213 | |
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, ...) \ | |
209 | 218 | extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ |
210 | 219 | [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] |
211 | 220 | #endif |
212 | 221 | |
213 | 222 | /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ |
214 | 223 | #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 | |
219 | 229 | # define static_assert _Static_assert /* C11 requires this #define. */ |
220 | 230 | # endif |
221 | 231 | #endif |
227 | 237 | assert (R), there is no run-time overhead. |
228 | 238 | |
229 | 239 | 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 | |
231 | 241 | integer constant expression contexts. verify (R) is for declaration |
232 | 242 | contexts, e.g., the top level. */ |
233 | 243 | |
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 | ||
241 | 244 | /* Verify requirement R at compile-time. Return the value of the |
242 | 245 | expression E. */ |
243 | 246 | |
245 | 248 | (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) |
246 | 249 | |
247 | 250 | /* 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 ")", -) | |
255 | 260 | #endif |
256 | 261 | |
257 | 262 | #ifndef __has_builtin |
258 | 263 | # define __has_builtin(x) 0 |
259 | 264 | #endif |
260 | 265 | |
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. */ | |
264 | 271 | |
265 | 272 | #if (__has_builtin (__builtin_unreachable) \ |
266 | 273 | || 4 < __GNUC__ + (5 <= __GNUC_MINOR__)) |
26 | 26 | size_t |
27 | 27 | wcrtomb (char *s, wchar_t wc, mbstate_t *ps) |
28 | 28 | { |
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. */ | |
31 | 31 | if (ps != NULL && !mbsinit (ps)) |
32 | 32 | { |
33 | 33 | errno = EINVAL; |
39 | 39 | return 1; |
40 | 40 | else |
41 | 41 | { |
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(). */ | |
42 | 52 | int ret = wctomb (s, wc); |
43 | 53 | |
44 | 54 | if (ret >= 0) |
45 | 55 | return ret; |
56 | #endif | |
46 | 57 | else |
47 | 58 | { |
48 | 59 | 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 | |
1 | 1 | dnl Copyright (C) 2002-2004, 2006-2007, 2009-2019 Free Software Foundation, |
2 | 2 | dnl Inc. |
3 | 3 | dnl This file is free software; the Free Software Foundation |
36 | 36 | fi |
37 | 37 | AC_SUBST([ALLOCA_H]) |
38 | 38 | 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]) | |
39 | 46 | ]) |
40 | 47 | |
41 | 48 | # Prerequisites of lib/alloca.c. |
0 | # gnulib-common.m4 serial 41 | |
0 | # gnulib-common.m4 serial 44 | |
1 | 1 | dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
16 | 16 | AH_VERBATIM([_Noreturn], |
17 | 17 | [/* The _Noreturn keyword of C11. */ |
18 | 18 | #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))) | |
20 | 22 | # 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__))) | |
23 | 26 | /* _Noreturn works as-is. */ |
24 | 27 | # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C |
25 | 28 | # define _Noreturn __attribute__ ((__noreturn__)) |
83 | 86 | #else |
84 | 87 | # define _GL_ATTRIBUTE_MALLOC /* empty */ |
85 | 88 | #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 | |
86 | 116 | ]) |
87 | 117 | dnl Preparation for running test programs: |
88 | 118 | dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not |
140 | 140 | # Code from module wcrtomb: |
141 | 141 | # Code from module wctype-h: |
142 | 142 | # 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: | |
143 | 147 | # Code from module xalloc: |
144 | 148 | # Code from module xalloc-die: |
145 | 149 | # Code from module xalloc-oversized: |
351 | 355 | gl_gnulib_enabled_threadlib=false |
352 | 356 | gl_gnulib_enabled_vasnprintf=false |
353 | 357 | 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 | |
354 | 362 | gl_gnulib_enabled_xsize=false |
355 | 363 | func_gl_gnulib_m4code_btowc () |
356 | 364 | { |
437 | 445 | gl_MODULE_INDICATOR([lock]) |
438 | 446 | gl_gnulib_enabled_lock=true |
439 | 447 | 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 | |
440 | 460 | fi |
441 | 461 | } |
442 | 462 | func_gl_gnulib_m4code_mbtowc () |
443 | 463 | { |
444 | 464 | if ! $gl_gnulib_enabled_mbtowc; then |
445 | 465 | gl_FUNC_MBTOWC |
446 | if test $REPLACE_MBTOWC = 1; then | |
466 | if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then | |
447 | 467 | AC_LIBOBJ([mbtowc]) |
448 | 468 | gl_PREREQ_MBTOWC |
449 | 469 | fi |
570 | 590 | func_gl_gnulib_m4code_threadlib () |
571 | 591 | { |
572 | 592 | if ! $gl_gnulib_enabled_threadlib; then |
573 | gl_THREADLIB | |
593 | AC_REQUIRE([gl_THREADLIB]) | |
574 | 594 | gl_gnulib_enabled_threadlib=true |
575 | 595 | fi |
576 | 596 | } |
594 | 614 | gl_gnulib_enabled_wcrtomb=true |
595 | 615 | fi |
596 | 616 | } |
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 | } | |
597 | 665 | func_gl_gnulib_m4code_xsize () |
598 | 666 | { |
599 | 667 | if ! $gl_gnulib_enabled_xsize; then |
622 | 690 | fi |
623 | 691 | if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then |
624 | 692 | 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 | |
625 | 696 | fi |
626 | 697 | if test $ac_use_included_regex = yes; then |
627 | 698 | func_gl_gnulib_m4code_btowc |
684 | 755 | AM_CONDITIONAL([gl_GNULIB_ENABLED_threadlib], [$gl_gnulib_enabled_threadlib]) |
685 | 756 | AM_CONDITIONAL([gl_GNULIB_ENABLED_vasnprintf], [$gl_gnulib_enabled_vasnprintf]) |
686 | 757 | 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]) | |
687 | 762 | AM_CONDITIONAL([gl_GNULIB_ENABLED_xsize], [$gl_gnulib_enabled_xsize]) |
688 | 763 | # End of code from modules |
689 | 764 | m4_ifval(gl_LIBSOURCES_LIST, [ |
958 | 1033 | lib/wctype-h.c |
959 | 1034 | lib/wctype.in.h |
960 | 1035 | 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 | |
961 | 1045 | lib/xalloc-die.c |
962 | 1046 | lib/xalloc-oversized.h |
963 | 1047 | lib/xalloc.h |
0 | # malloc.m4 serial 17 | |
0 | # malloc.m4 serial 19 | |
1 | 1 | dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
31 | 31 | [ac_cv_func_malloc_0_nonnull=no], |
32 | 32 | [case "$host_os" in |
33 | 33 | # Guess yes on platforms where we know the result. |
34 | *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | |
34 | *-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \ | |
35 | 35 | | hpux* | solaris* | cygwin* | mingw*) |
36 | ac_cv_func_malloc_0_nonnull=yes ;; | |
36 | ac_cv_func_malloc_0_nonnull="guessing yes" ;; | |
37 | 37 | # 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" ;; | |
39 | 39 | esac |
40 | 40 | ]) |
41 | 41 | ]) |
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 | |
43 | 50 | ])# _AC_FUNC_MALLOC_IF |
44 | 51 | |
45 | 52 | ]) |
0 | # mbtowc.m4 serial 2 | |
0 | # mbtowc.m4 serial 3 | |
1 | 1 | dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
7 | 7 | [ |
8 | 8 | AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) |
9 | 9 | |
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 | |
12 | 17 | fi |
13 | 18 | ]) |
14 | 19 |
0 | # memchr.m4 serial 13 | |
0 | # memchr.m4 serial 14 | |
1 | 1 | dnl Copyright (C) 2002-2004, 2009-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
28 | 28 | # memchr should not dereference overestimated length after a match |
29 | 29 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 |
30 | 30 | # 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. | |
31 | 33 | # Assume that memchr works on platforms that lack mprotect. |
32 | 34 | AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], |
33 | 35 | [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ |
73 | 75 | if (memchr (fence - 1, 0, 3) != fence - 1) |
74 | 76 | result |= 4; |
75 | 77 | } |
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 | } | |
76 | 87 | return result; |
77 | 88 | ]])], |
78 | 89 | [gl_cv_func_memchr_works=yes], |
79 | 90 | [gl_cv_func_memchr_works=no], |
80 | 91 | [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" ;; | |
85 | 98 | esac |
86 | 99 | ]) |
87 | 100 | ]) |
0 | # printf.m4 serial 59 | |
0 | # printf.m4 serial 61 | |
1 | 1 | dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
61 | 61 | changequote(,)dnl |
62 | 62 | # Guess yes on glibc systems. |
63 | 63 | *-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";; | |
64 | 66 | # Guess yes on FreeBSD >= 5. |
65 | 67 | freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";; |
66 | 68 | freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; |
78 | 80 | netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) |
79 | 81 | gl_cv_func_printf_sizes_c99="guessing no";; |
80 | 82 | 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";; | |
81 | 85 | changequote([,])dnl |
82 | 86 | # Guess yes on MSVC, no on mingw. |
83 | 87 | mingw*) AC_EGREP_CPP([Known], [ |
131 | 135 | [gl_cv_func_printf_long_double=yes], |
132 | 136 | [gl_cv_func_printf_long_double=no], |
133 | 137 | [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], [ | |
137 | 144 | #ifdef _MSC_VER |
138 | 145 | Known |
139 | 146 | #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";; | |
145 | 152 | esac |
146 | 153 | ]) |
147 | 154 | ]) |
234 | 241 | changequote(,)dnl |
235 | 242 | # Guess yes on glibc systems. |
236 | 243 | *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";; |
244 | # Guess yes on musl systems. | |
245 | *-musl*) gl_cv_func_printf_infinite="guessing yes";; | |
237 | 246 | # Guess yes on FreeBSD >= 6. |
238 | 247 | freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; |
239 | 248 | freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; |
249 | 258 | netbsd*) gl_cv_func_printf_infinite="guessing yes";; |
250 | 259 | # Guess yes on BeOS. |
251 | 260 | beos*) gl_cv_func_printf_infinite="guessing yes";; |
261 | # Guess no on Android. | |
262 | linux*-android*) gl_cv_func_printf_infinite="guessing no";; | |
252 | 263 | changequote([,])dnl |
253 | 264 | # Guess yes on MSVC, no on mingw. |
254 | 265 | mingw*) AC_EGREP_CPP([Known], [ |
449 | 460 | changequote(,)dnl |
450 | 461 | # Guess yes on glibc systems. |
451 | 462 | *-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";; | |
452 | 465 | # Guess yes on FreeBSD >= 6. |
453 | 466 | freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; |
454 | 467 | freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; |
455 | 468 | # Guess yes on HP-UX >= 11. |
456 | 469 | hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; |
457 | 470 | 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";; | |
458 | 473 | changequote([,])dnl |
459 | 474 | # Guess yes on MSVC, no on mingw. |
460 | 475 | mingw*) AC_EGREP_CPP([Known], [ |
565 | 580 | [gl_cv_func_printf_directive_a="guessing yes"], |
566 | 581 | [gl_cv_func_printf_directive_a="guessing no"]) |
567 | 582 | ;; |
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";; | |
568 | 587 | # Guess no on native Windows. |
569 | 588 | mingw*) gl_cv_func_printf_directive_a="guessing no";; |
570 | 589 | # If we don't know, assume the worst. |
613 | 632 | changequote(,)dnl |
614 | 633 | # Guess yes on glibc systems. |
615 | 634 | *-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";; | |
616 | 637 | # Guess yes on FreeBSD >= 6. |
617 | 638 | freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; |
618 | 639 | freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; |
622 | 643 | # Guess yes on Solaris >= 2.10. |
623 | 644 | solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";; |
624 | 645 | 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";; | |
625 | 648 | changequote([,])dnl |
626 | 649 | # Guess yes on MSVC, no on mingw. |
627 | 650 | mingw*) AC_EGREP_CPP([Known], [ |
687 | 710 | [gl_cv_func_printf_directive_n=yes], |
688 | 711 | [gl_cv_func_printf_directive_n=no], |
689 | 712 | [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";; | |
693 | 718 | esac |
694 | 719 | ]) |
695 | 720 | ]) |
765 | 790 | [ |
766 | 791 | changequote(,)dnl |
767 | 792 | 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";; | |
776 | 803 | esac |
777 | 804 | changequote([,])dnl |
778 | 805 | ]) |
809 | 836 | changequote(,)dnl |
810 | 837 | case "$host_os" in |
811 | 838 | 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";; | |
817 | 846 | esac |
818 | 847 | changequote([,])dnl |
819 | 848 | ]) |
848 | 877 | [ |
849 | 878 | changequote(,)dnl |
850 | 879 | 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";; | |
856 | 887 | esac |
857 | 888 | changequote([,])dnl |
858 | 889 | ]) |
889 | 920 | [ |
890 | 921 | changequote(,)dnl |
891 | 922 | 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";; | |
900 | 933 | esac |
901 | 934 | changequote([,])dnl |
902 | 935 | ]) |
934 | 967 | [ |
935 | 968 | changequote(,)dnl |
936 | 969 | 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";; | |
945 | 982 | esac |
946 | 983 | changequote([,])dnl |
947 | 984 | ]) |
994 | 1031 | changequote(,)dnl |
995 | 1032 | case "$host_os" in |
996 | 1033 | # 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" ;; | |
1001 | 1040 | esac |
1002 | 1041 | changequote([,])dnl |
1003 | 1042 | ]) |
1094 | 1133 | if test "$gl_cv_func_printf_enomem" = "guessing no"; then |
1095 | 1134 | changequote(,)dnl |
1096 | 1135 | 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";; | |
1119 | 1160 | esac |
1120 | 1161 | changequote([,])dnl |
1121 | 1162 | fi |
1176 | 1217 | case "$host_os" in |
1177 | 1218 | # Guess yes on glibc systems. |
1178 | 1219 | *-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";; | |
1179 | 1222 | # Guess yes on FreeBSD >= 5. |
1180 | 1223 | freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; |
1181 | 1224 | freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; |
1207 | 1250 | netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; |
1208 | 1251 | # Guess yes on BeOS. |
1209 | 1252 | 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";; | |
1210 | 1255 | # Guess no on native Windows. |
1211 | 1256 | mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; |
1212 | 1257 | # If we don't know, assume the worst. |
1276 | 1321 | changequote(,)dnl |
1277 | 1322 | # Guess yes on glibc systems. |
1278 | 1323 | *-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";; | |
1279 | 1326 | # Guess yes on FreeBSD >= 5. |
1280 | 1327 | freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; |
1281 | 1328 | freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
1298 | 1345 | netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
1299 | 1346 | # Guess yes on BeOS. |
1300 | 1347 | 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";; | |
1301 | 1350 | changequote([,])dnl |
1302 | 1351 | # Guess yes on MSVC, no on mingw. |
1303 | 1352 | mingw*) AC_EGREP_CPP([Known], [ |
1366 | 1415 | case "$host_os" in |
1367 | 1416 | # Guess yes on glibc systems. |
1368 | 1417 | *-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";; | |
1369 | 1420 | # Guess yes on FreeBSD >= 5. |
1370 | 1421 | freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; |
1371 | 1422 | freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; |
1390 | 1441 | netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; |
1391 | 1442 | # Guess yes on BeOS. |
1392 | 1443 | 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";; | |
1393 | 1446 | # Guess no on native Windows. |
1394 | 1447 | mingw*) gl_cv_func_snprintf_directive_n="guessing no";; |
1395 | 1448 | # If we don't know, assume the worst. |
1439 | 1492 | [gl_cv_func_snprintf_size1=yes], |
1440 | 1493 | [gl_cv_func_snprintf_size1=no], |
1441 | 1494 | [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" ;; | |
1445 | 1500 | esac |
1446 | 1501 | ]) |
1447 | 1502 | ]) |
1516 | 1571 | case "$host_os" in |
1517 | 1572 | # Guess yes on glibc systems. |
1518 | 1573 | *-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";; | |
1519 | 1576 | # Guess yes on FreeBSD >= 5. |
1520 | 1577 | freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; |
1521 | 1578 | freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; |
1539 | 1596 | netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; |
1540 | 1597 | # Guess yes on BeOS. |
1541 | 1598 | 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";; | |
1542 | 1601 | # Guess yes on native Windows. |
1543 | 1602 | mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; |
1544 | 1603 | # If we don't know, assume the worst. |
1625 | 1684 | dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . |
1626 | 1685 | dnl Haiku . . . # # # . # . . . . . ? . . ? . . . |
1627 | 1686 | dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . . |
1687 | dnl Android 4.3 . . # # # # # # . # . # . # . . . # . . | |
1628 | 1688 | dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . . |
1629 | 1689 | dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . . |
1630 | 1690 | dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . . |
0 | # stdlib_h.m4 serial 45 | |
0 | # stdlib_h.m4 serial 48 | |
1 | 1 | dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
22 | 22 | # include <random.h> |
23 | 23 | #endif |
24 | 24 | ]], [_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 | |
26 | 26 | posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray |
27 | 27 | 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]) | |
29 | 29 | ]) |
30 | 30 | |
31 | 31 | AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], |
67 | 67 | GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) |
68 | 68 | GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) |
69 | 69 | GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) |
70 | GNULIB_STRTOLD=0; AC_SUBST([GNULIB_STRTOLD]) | |
70 | 71 | GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) |
71 | 72 | GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) |
72 | 73 | GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) |
80 | 81 | HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) |
81 | 82 | HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) |
82 | 83 | HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) |
84 | HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) | |
83 | 85 | HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) |
86 | HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC]) | |
84 | 87 | HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) |
85 | 88 | HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) |
86 | 89 | HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) |
99 | 102 | HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) |
100 | 103 | HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) |
101 | 104 | HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) |
105 | HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) | |
102 | 106 | HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) |
103 | 107 | HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) |
108 | HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) | |
104 | 109 | HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) |
105 | 110 | HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) |
106 | 111 | HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) |
109 | 114 | HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) |
110 | 115 | REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) |
111 | 116 | REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) |
117 | REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) | |
112 | 118 | REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) |
113 | 119 | REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) |
114 | 120 | REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) |
116 | 122 | REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) |
117 | 123 | REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) |
118 | 124 | REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) |
125 | REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) | |
119 | 126 | REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) |
120 | 127 | REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) |
121 | 128 | REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) |
122 | 129 | REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) |
130 | REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) | |
123 | 131 | REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) |
132 | REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) | |
124 | 133 | REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) |
125 | 134 | REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) |
126 | 135 | ]) |
0 | # strerror.m4 serial 19 | |
0 | # strerror.m4 serial 20 | |
1 | 1 | dnl Copyright (C) 2002, 2007-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
25 | 25 | [case "$host_os" in |
26 | 26 | # Guess yes on glibc systems. |
27 | 27 | *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; |
28 | # Guess yes on musl systems. | |
29 | *-musl*) gl_cv_func_working_strerror="guessing yes" ;; | |
28 | 30 | # If we don't know, assume the worst. |
29 | 31 | *) gl_cv_func_working_strerror="guessing no" ;; |
30 | 32 | esac |
79 | 81 | [case "$host_os" in |
80 | 82 | # Guess yes on glibc systems. |
81 | 83 | *-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" ;; | |
82 | 86 | # Guess yes on native Windows. |
83 | 87 | mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; |
84 | 88 | # If we don't know, assume the worst. |
0 | # sys_socket_h.m4 serial 23 | |
0 | # sys_socket_h.m4 serial 24 | |
1 | 1 | dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
103 | 103 | gl_CHECK_NEXT_HEADERS([sys/socket.h]) |
104 | 104 | if test $ac_cv_header_sys_socket_h = yes; then |
105 | 105 | HAVE_SYS_SOCKET_H=1 |
106 | HAVE_WS2TCPIP_H=0 | |
107 | 106 | else |
108 | 107 | 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 | |
114 | 108 | fi |
115 | 109 | AC_SUBST([HAVE_SYS_SOCKET_H]) |
116 | AC_SUBST([HAVE_WS2TCPIP_H]) | |
110 | gl_PREREQ_SYS_H_WS2TCPIP | |
117 | 111 | ]) |
118 | 112 | |
119 | 113 | # Common prerequisites of the <sys/socket.h> replacement and of the |
139 | 133 | HAVE_WINSOCK2_H=0 |
140 | 134 | fi |
141 | 135 | 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]) | |
142 | 154 | ]) |
143 | 155 | |
144 | 156 | AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], |
0 | # threadlib.m4 serial 15 | |
0 | # threadlib.m4 serial 20 | |
1 | 1 | dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
15 | 15 | dnl default is 'no', otherwise it is system dependent. In both cases, the user |
16 | 16 | dnl can change the choice through the options --enable-threads=choice or |
17 | 17 | 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. | |
20 | 19 | dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use |
21 | 20 | dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with |
22 | 21 | dnl libtool). |
26 | 25 | dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not. |
27 | 26 | dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for |
28 | 27 | 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. | |
29 | 31 | |
30 | 32 | AC_DEFUN([gl_THREADLIB_EARLY], |
31 | 33 | [ |
49 | 51 | m4_ifdef([gl_THREADLIB_DEFAULT_NO], |
50 | 52 | [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], |
51 | 53 | [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) |
54 | m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=]) | |
52 | 55 | 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], [], [ | |
54 | 57 | AC_HELP_STRING([--disable-threads], [build without multithread safety])]), |
55 | 58 | [gl_use_threads=$enableval], |
56 | 59 | [if test -n "$gl_use_threads_default"; then |
61 | 64 | dnl Disable multithreading by default on OSF/1, because it interferes |
62 | 65 | dnl with fork()/exec(): When msgexec is linked with -lpthread, its |
63 | 66 | dnl child process gets an endless segmentation fault inside execvp(). |
67 | osf*) gl_use_threads=no ;; | |
64 | 68 | dnl Disable multithreading by default on Cygwin 1.5.x, because it has |
65 | 69 | dnl bugs that lead to endless loops or crashes. See |
66 | 70 | dnl <https://cygwin.com/ml/cygwin/2009-08/msg00283.html>. |
67 | osf*) gl_use_threads=no ;; | |
68 | 71 | cygwin*) |
69 | 72 | case `uname -r` in |
70 | 73 | 1.[0-5].*) gl_use_threads=no ;; |
71 | 74 | *) 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 ;; | |
72 | 83 | esac |
73 | 84 | ;; |
74 | 85 | *) gl_use_threads=yes ;; |
150 | 161 | *" -static "*) gl_cv_have_weak=no ;; |
151 | 162 | esac |
152 | 163 | ]) |
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 | |
183 | 171 | if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then |
184 | 172 | # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that |
185 | 173 | # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY. |
258 | 246 | [Define if references to the POSIX multithreading library should be made weak.]) |
259 | 247 | LIBTHREAD= |
260 | 248 | 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. | |
287 | 249 | fi |
288 | 250 | fi |
289 | 251 | 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" | |
375 | 252 | fi |
376 | 253 | fi |
377 | 254 | if test -z "$gl_have_pthread"; then |
416 | 293 | ]) |
417 | 294 | |
418 | 295 | |
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 | ||
419 | 308 | dnl Survey of platforms: |
420 | 309 | dnl |
421 | 310 | dnl Platform Available Compiler Supports test-lock |
445 | 334 | dnl Mac OS X 10.[123] posix -lpthread Y OK |
446 | 335 | dnl |
447 | 336 | 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 | |
449 | 337 | dnl |
450 | 338 | dnl HP-UX 11 posix -lpthread N (cc) OK |
451 | 339 | dnl Y (gcc) |
458 | 346 | dnl -lpthread (gcc) Y |
459 | 347 | dnl |
460 | 348 | dnl Cygwin posix -lpthread Y OK |
461 | dnl | |
462 | dnl Any of the above pth -lpth 0.0 | |
463 | 349 | dnl |
464 | 350 | dnl Mingw windows N OK |
465 | 351 | dnl |
0 | # unistd_h.m4 serial 74 | |
0 | # unistd_h.m4 serial 75 | |
1 | 1 | dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
63 | 63 | GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) |
64 | 64 | GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) |
65 | 65 | GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) |
66 | GNULIB_COPY_FILE_RANGE=0; AC_SUBST([GNULIB_COPY_FILE_RANGE]) | |
66 | 67 | GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) |
67 | 68 | GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) |
68 | 69 | GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) |
112 | 113 | GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) |
113 | 114 | dnl Assume proper GNU behavior unless another module says otherwise. |
114 | 115 | HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) |
116 | HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) | |
115 | 117 | HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) |
116 | 118 | HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) |
117 | 119 | HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) |
0 | # wcrtomb.m4 serial 13 | |
0 | # wcrtomb.m4 serial 14 | |
1 | 1 | dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
32 | 32 | else |
33 | 33 | if test $REPLACE_MBSTATE_T = 1; then |
34 | 34 | 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. | |
36 | 38 | dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL) |
37 | 39 | dnl sometimes returns 0 instead of 1. |
38 | 40 | AC_REQUIRE([AC_PROG_CC]) |
41 | 43 | AC_REQUIRE([gt_LOCALE_JA]) |
42 | 44 | AC_REQUIRE([gt_LOCALE_ZH_CN]) |
43 | 45 | 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 | |
44 | 85 | AC_CACHE_CHECK([whether wcrtomb return value is correct], |
45 | 86 | [gl_cv_func_wcrtomb_retval], |
46 | 87 | [ |
0 | # wcwidth.m4 serial 27 | |
0 | # wcwidth.m4 serial 29 | |
1 | 1 | dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
53 | 53 | dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1. |
54 | 54 | dnl On OpenBSD 5.8, wcwidth(0xFF1A) (FULLWIDTH COLON) returns 0. |
55 | 55 | 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. | |
56 | 58 | AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales], |
57 | 59 | [gl_cv_func_wcwidth_works], |
58 | 60 | [ |
79 | 81 | int main () |
80 | 82 | { |
81 | 83 | int result = 0; |
82 | if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL) | |
84 | if (setlocale (LC_ALL, "en_US.UTF-8") != NULL) | |
83 | 85 | { |
84 | 86 | if (wcwidth (0x0301) > 0) |
85 | 87 | result |= 1; |
89 | 91 | result |= 4; |
90 | 92 | if (wcwidth (0xFF1A) == 0) |
91 | 93 | result |= 8; |
94 | if (wcwidth (0x2202) > 1) | |
95 | result |= 16; | |
92 | 96 | } |
93 | 97 | return result; |
94 | 98 | }]])], |
97 | 101 | [ |
98 | 102 | changequote(,)dnl |
99 | 103 | 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";; | |
103 | 111 | esac |
104 | 112 | changequote([,])dnl |
105 | 113 | ]) |
580 | 580 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
581 | 581 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
582 | 582 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
583 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
583 | 584 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
584 | 585 | GNULIB_DUP = @GNULIB_DUP@ |
585 | 586 | GNULIB_DUP2 = @GNULIB_DUP2@ |
735 | 736 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
736 | 737 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
737 | 738 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
739 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
738 | 740 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
739 | 741 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
740 | 742 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
802 | 804 | GNULIB_WRITE = @GNULIB_WRITE@ |
803 | 805 | GNULIB__EXIT = @GNULIB__EXIT@ |
804 | 806 | GREP = @GREP@ |
807 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
805 | 808 | HAVE_ATOLL = @HAVE_ATOLL@ |
806 | 809 | HAVE_BTOWC = @HAVE_BTOWC@ |
807 | 810 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
808 | 811 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
809 | 812 | HAVE_CHOWN = @HAVE_CHOWN@ |
813 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
810 | 814 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
811 | 815 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
812 | 816 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
872 | 876 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
873 | 877 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
874 | 878 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
879 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
875 | 880 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
876 | 881 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
877 | 882 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
892 | 897 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
893 | 898 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
894 | 899 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
900 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
895 | 901 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
896 | 902 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
897 | 903 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
926 | 932 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
927 | 933 | HAVE_SETENV = @HAVE_SETENV@ |
928 | 934 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
935 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
929 | 936 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
930 | 937 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
931 | 938 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
940 | 947 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
941 | 948 | HAVE_STRSEP = @HAVE_STRSEP@ |
942 | 949 | HAVE_STRTOD = @HAVE_STRTOD@ |
950 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
943 | 951 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
944 | 952 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
945 | 953 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
1018 | 1026 | LIBINTL = @LIBINTL@ |
1019 | 1027 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
1020 | 1028 | LIBOBJS = @LIBOBJS@ |
1021 | LIBPTH = @LIBPTH@ | |
1022 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
1023 | 1029 | LIBS = @LIBS@ |
1024 | 1030 | LIBTHREAD = @LIBTHREAD@ |
1025 | 1031 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
1035 | 1041 | LTLIBINTL = @LTLIBINTL@ |
1036 | 1042 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
1037 | 1043 | LTLIBOBJS = @LTLIBOBJS@ |
1038 | LTLIBPTH = @LTLIBPTH@ | |
1039 | 1044 | LTLIBTHREAD = @LTLIBTHREAD@ |
1040 | 1045 | MAKEINFO = @MAKEINFO@ |
1041 | 1046 | MKDIR_P = @MKDIR_P@ |
1132 | 1137 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1133 | 1138 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1134 | 1139 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1140 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1135 | 1141 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1136 | 1142 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1137 | 1143 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1165 | 1171 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1166 | 1172 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1167 | 1173 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1174 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1168 | 1175 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1169 | 1176 | REPLACE_READ = @REPLACE_READ@ |
1170 | 1177 | REPLACE_READLINK = @REPLACE_READLINK@ |
1177 | 1184 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1178 | 1185 | REPLACE_SETENV = @REPLACE_SETENV@ |
1179 | 1186 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1187 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1180 | 1188 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1181 | 1189 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1182 | 1190 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1195 | 1203 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1196 | 1204 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1197 | 1205 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1206 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1198 | 1207 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1199 | 1208 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1200 | 1209 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
409 | 409 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
410 | 410 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
411 | 411 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
412 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
412 | 413 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
413 | 414 | GNULIB_DUP = @GNULIB_DUP@ |
414 | 415 | GNULIB_DUP2 = @GNULIB_DUP2@ |
564 | 565 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
565 | 566 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
566 | 567 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
568 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
567 | 569 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
568 | 570 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
569 | 571 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
631 | 633 | GNULIB_WRITE = @GNULIB_WRITE@ |
632 | 634 | GNULIB__EXIT = @GNULIB__EXIT@ |
633 | 635 | GREP = @GREP@ |
636 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
634 | 637 | HAVE_ATOLL = @HAVE_ATOLL@ |
635 | 638 | HAVE_BTOWC = @HAVE_BTOWC@ |
636 | 639 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
637 | 640 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
638 | 641 | HAVE_CHOWN = @HAVE_CHOWN@ |
642 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
639 | 643 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
640 | 644 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
641 | 645 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
701 | 705 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
702 | 706 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
703 | 707 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
708 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
704 | 709 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
705 | 710 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
706 | 711 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
721 | 726 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
722 | 727 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
723 | 728 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
729 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
724 | 730 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
725 | 731 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
726 | 732 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
755 | 761 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
756 | 762 | HAVE_SETENV = @HAVE_SETENV@ |
757 | 763 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
764 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
758 | 765 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
759 | 766 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
760 | 767 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
769 | 776 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
770 | 777 | HAVE_STRSEP = @HAVE_STRSEP@ |
771 | 778 | HAVE_STRTOD = @HAVE_STRTOD@ |
779 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
772 | 780 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
773 | 781 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
774 | 782 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
847 | 855 | LIBINTL = @LIBINTL@ |
848 | 856 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
849 | 857 | LIBOBJS = @LIBOBJS@ |
850 | LIBPTH = @LIBPTH@ | |
851 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
852 | 858 | LIBS = @LIBS@ |
853 | 859 | LIBTHREAD = @LIBTHREAD@ |
854 | 860 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
864 | 870 | LTLIBINTL = @LTLIBINTL@ |
865 | 871 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
866 | 872 | LTLIBOBJS = @LTLIBOBJS@ |
867 | LTLIBPTH = @LTLIBPTH@ | |
868 | 873 | LTLIBTHREAD = @LTLIBTHREAD@ |
869 | 874 | MAKEINFO = @MAKEINFO@ |
870 | 875 | MKDIR_P = @MKDIR_P@ |
961 | 966 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
962 | 967 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
963 | 968 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
969 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
964 | 970 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
965 | 971 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
966 | 972 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
994 | 1000 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
995 | 1001 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
996 | 1002 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1003 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
997 | 1004 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
998 | 1005 | REPLACE_READ = @REPLACE_READ@ |
999 | 1006 | REPLACE_READLINK = @REPLACE_READLINK@ |
1006 | 1013 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1007 | 1014 | REPLACE_SETENV = @REPLACE_SETENV@ |
1008 | 1015 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1016 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1009 | 1017 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1010 | 1018 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1011 | 1019 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1024 | 1032 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1025 | 1033 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1026 | 1034 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1035 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1027 | 1036 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1028 | 1037 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1029 | 1038 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
494 | 494 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
495 | 495 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
496 | 496 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
497 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
497 | 498 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
498 | 499 | GNULIB_DUP = @GNULIB_DUP@ |
499 | 500 | GNULIB_DUP2 = @GNULIB_DUP2@ |
649 | 650 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
650 | 651 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
651 | 652 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
653 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
652 | 654 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
653 | 655 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
654 | 656 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
716 | 718 | GNULIB_WRITE = @GNULIB_WRITE@ |
717 | 719 | GNULIB__EXIT = @GNULIB__EXIT@ |
718 | 720 | GREP = @GREP@ |
721 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
719 | 722 | HAVE_ATOLL = @HAVE_ATOLL@ |
720 | 723 | HAVE_BTOWC = @HAVE_BTOWC@ |
721 | 724 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
722 | 725 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
723 | 726 | HAVE_CHOWN = @HAVE_CHOWN@ |
727 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
724 | 728 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
725 | 729 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
726 | 730 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
786 | 790 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
787 | 791 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
788 | 792 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
793 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
789 | 794 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
790 | 795 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
791 | 796 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
806 | 811 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
807 | 812 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
808 | 813 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
814 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
809 | 815 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
810 | 816 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
811 | 817 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
840 | 846 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
841 | 847 | HAVE_SETENV = @HAVE_SETENV@ |
842 | 848 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
849 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
843 | 850 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
844 | 851 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
845 | 852 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
854 | 861 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
855 | 862 | HAVE_STRSEP = @HAVE_STRSEP@ |
856 | 863 | HAVE_STRTOD = @HAVE_STRTOD@ |
864 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
857 | 865 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
858 | 866 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
859 | 867 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
932 | 940 | LIBINTL = @LIBINTL@ |
933 | 941 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
934 | 942 | LIBOBJS = @LIBOBJS@ |
935 | LIBPTH = @LIBPTH@ | |
936 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
937 | 943 | LIBS = @LIBS@ |
938 | 944 | LIBTHREAD = @LIBTHREAD@ |
939 | 945 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
949 | 955 | LTLIBINTL = @LTLIBINTL@ |
950 | 956 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
951 | 957 | LTLIBOBJS = @LTLIBOBJS@ |
952 | LTLIBPTH = @LTLIBPTH@ | |
953 | 958 | LTLIBTHREAD = @LTLIBTHREAD@ |
954 | 959 | MAKEINFO = @MAKEINFO@ |
955 | 960 | MKDIR_P = @MKDIR_P@ |
1046 | 1051 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1047 | 1052 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1048 | 1053 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1054 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1049 | 1055 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1050 | 1056 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1051 | 1057 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1079 | 1085 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1080 | 1086 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1081 | 1087 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1088 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1082 | 1089 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1083 | 1090 | REPLACE_READ = @REPLACE_READ@ |
1084 | 1091 | REPLACE_READLINK = @REPLACE_READLINK@ |
1091 | 1098 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1092 | 1099 | REPLACE_SETENV = @REPLACE_SETENV@ |
1093 | 1100 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1101 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1094 | 1102 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1095 | 1103 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1096 | 1104 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1109 | 1117 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1110 | 1118 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1111 | 1119 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1120 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1112 | 1121 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1113 | 1122 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1114 | 1123 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
323 | 323 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
324 | 324 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
325 | 325 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
326 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
326 | 327 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
327 | 328 | GNULIB_DUP = @GNULIB_DUP@ |
328 | 329 | GNULIB_DUP2 = @GNULIB_DUP2@ |
478 | 479 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
479 | 480 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
480 | 481 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
482 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
481 | 483 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
482 | 484 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
483 | 485 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
545 | 547 | GNULIB_WRITE = @GNULIB_WRITE@ |
546 | 548 | GNULIB__EXIT = @GNULIB__EXIT@ |
547 | 549 | GREP = @GREP@ |
550 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
548 | 551 | HAVE_ATOLL = @HAVE_ATOLL@ |
549 | 552 | HAVE_BTOWC = @HAVE_BTOWC@ |
550 | 553 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
551 | 554 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
552 | 555 | HAVE_CHOWN = @HAVE_CHOWN@ |
556 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
553 | 557 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
554 | 558 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
555 | 559 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
615 | 619 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
616 | 620 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
617 | 621 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
622 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
618 | 623 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
619 | 624 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
620 | 625 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
635 | 640 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
636 | 641 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
637 | 642 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
643 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
638 | 644 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
639 | 645 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
640 | 646 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
669 | 675 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
670 | 676 | HAVE_SETENV = @HAVE_SETENV@ |
671 | 677 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
678 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
672 | 679 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
673 | 680 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
674 | 681 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
683 | 690 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
684 | 691 | HAVE_STRSEP = @HAVE_STRSEP@ |
685 | 692 | HAVE_STRTOD = @HAVE_STRTOD@ |
693 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
686 | 694 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
687 | 695 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
688 | 696 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
761 | 769 | LIBINTL = @LIBINTL@ |
762 | 770 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
763 | 771 | LIBOBJS = @LIBOBJS@ |
764 | LIBPTH = @LIBPTH@ | |
765 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
766 | 772 | LIBS = @LIBS@ |
767 | 773 | LIBTHREAD = @LIBTHREAD@ |
768 | 774 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
778 | 784 | LTLIBINTL = @LTLIBINTL@ |
779 | 785 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
780 | 786 | LTLIBOBJS = @LTLIBOBJS@ |
781 | LTLIBPTH = @LTLIBPTH@ | |
782 | 787 | LTLIBTHREAD = @LTLIBTHREAD@ |
783 | 788 | MAKEINFO = $(MAKEINFO_ENVIRIONMENT) $(PERL) "$(tpdir)"/texi2any.pl |
784 | 789 | MKDIR_P = @MKDIR_P@ |
875 | 880 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
876 | 881 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
877 | 882 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
883 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
878 | 884 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
879 | 885 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
880 | 886 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
908 | 914 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
909 | 915 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
910 | 916 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
917 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
911 | 918 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
912 | 919 | REPLACE_READ = @REPLACE_READ@ |
913 | 920 | REPLACE_READLINK = @REPLACE_READLINK@ |
920 | 927 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
921 | 928 | REPLACE_SETENV = @REPLACE_SETENV@ |
922 | 929 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
930 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
923 | 931 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
924 | 932 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
925 | 933 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
938 | 946 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
939 | 947 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
940 | 948 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
949 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
941 | 950 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
942 | 951 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
943 | 952 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
0 | 0 | .\" 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" | |
2 | 2 | .SH NAME |
3 | 3 | info \- read Info documents |
4 | 4 | .SH SYNOPSIS |
0 | 0 | .\" 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" | |
2 | 2 | .SH NAME |
3 | 3 | install-info \- update info/dir entries |
4 | 4 | .SH SYNOPSIS |
0 | 0 | .\" 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" | |
2 | 2 | .SH NAME |
3 | 3 | texi2any \- translate Texinfo documents |
4 | 4 | .SH SYNOPSIS |
0 | 0 | .\" 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" | |
2 | 2 | .SH NAME |
3 | 3 | texindex \- sort Texinfo index files |
4 | 4 | .SH SYNOPSIS |
503 | 503 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
504 | 504 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
505 | 505 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
506 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
506 | 507 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
507 | 508 | GNULIB_DUP = @GNULIB_DUP@ |
508 | 509 | GNULIB_DUP2 = @GNULIB_DUP2@ |
658 | 659 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
659 | 660 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
660 | 661 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
662 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
661 | 663 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
662 | 664 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
663 | 665 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
725 | 727 | GNULIB_WRITE = @GNULIB_WRITE@ |
726 | 728 | GNULIB__EXIT = @GNULIB__EXIT@ |
727 | 729 | GREP = @GREP@ |
730 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
728 | 731 | HAVE_ATOLL = @HAVE_ATOLL@ |
729 | 732 | HAVE_BTOWC = @HAVE_BTOWC@ |
730 | 733 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
731 | 734 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
732 | 735 | HAVE_CHOWN = @HAVE_CHOWN@ |
736 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
733 | 737 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
734 | 738 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
735 | 739 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
795 | 799 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
796 | 800 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
797 | 801 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
802 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
798 | 803 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
799 | 804 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
800 | 805 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
815 | 820 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
816 | 821 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
817 | 822 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
823 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
818 | 824 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
819 | 825 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
820 | 826 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
849 | 855 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
850 | 856 | HAVE_SETENV = @HAVE_SETENV@ |
851 | 857 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
858 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
852 | 859 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
853 | 860 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
854 | 861 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
863 | 870 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
864 | 871 | HAVE_STRSEP = @HAVE_STRSEP@ |
865 | 872 | HAVE_STRTOD = @HAVE_STRTOD@ |
873 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
866 | 874 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
867 | 875 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
868 | 876 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
941 | 949 | LIBINTL = @LIBINTL@ |
942 | 950 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
943 | 951 | LIBOBJS = @LIBOBJS@ |
944 | LIBPTH = @LIBPTH@ | |
945 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
946 | 952 | LIBS = @LIBS@ |
947 | 953 | LIBTHREAD = @LIBTHREAD@ |
948 | 954 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
958 | 964 | LTLIBINTL = @LTLIBINTL@ |
959 | 965 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
960 | 966 | LTLIBOBJS = @LTLIBOBJS@ |
961 | LTLIBPTH = @LTLIBPTH@ | |
962 | 967 | LTLIBTHREAD = @LTLIBTHREAD@ |
963 | 968 | MAKEINFO = @MAKEINFO@ |
964 | 969 | MKDIR_P = @MKDIR_P@ |
1055 | 1060 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1056 | 1061 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1057 | 1062 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1063 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1058 | 1064 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1059 | 1065 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1060 | 1066 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1088 | 1094 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1089 | 1095 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1090 | 1096 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1097 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1091 | 1098 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1092 | 1099 | REPLACE_READ = @REPLACE_READ@ |
1093 | 1100 | REPLACE_READLINK = @REPLACE_READLINK@ |
1100 | 1107 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1101 | 1108 | REPLACE_SETENV = @REPLACE_SETENV@ |
1102 | 1109 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1110 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1103 | 1111 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1104 | 1112 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1105 | 1113 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1118 | 1126 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1119 | 1127 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1120 | 1128 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1129 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1121 | 1130 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1122 | 1131 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1123 | 1132 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
196 | 196 | EXIT_SUCCESS = 0 |
197 | 197 | EXIT_FAILURE = 1 |
198 | 198 | |
199 | Texindex_version = "6.6dev" | |
199 | Texindex_version = "6.6.92" | |
200 | 200 | if (! Invocation_name) { |
201 | 201 | # provide fallback in case it's not passed in. |
202 | 202 | Invocation_name = "texindex" |
569 | 569 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
570 | 570 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
571 | 571 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
572 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
572 | 573 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
573 | 574 | GNULIB_DUP = @GNULIB_DUP@ |
574 | 575 | GNULIB_DUP2 = @GNULIB_DUP2@ |
724 | 725 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
725 | 726 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
726 | 727 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
728 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
727 | 729 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
728 | 730 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
729 | 731 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
791 | 793 | GNULIB_WRITE = @GNULIB_WRITE@ |
792 | 794 | GNULIB__EXIT = @GNULIB__EXIT@ |
793 | 795 | GREP = @GREP@ |
796 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
794 | 797 | HAVE_ATOLL = @HAVE_ATOLL@ |
795 | 798 | HAVE_BTOWC = @HAVE_BTOWC@ |
796 | 799 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
797 | 800 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
798 | 801 | HAVE_CHOWN = @HAVE_CHOWN@ |
802 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
799 | 803 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
800 | 804 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
801 | 805 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
861 | 865 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
862 | 866 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
863 | 867 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
868 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
864 | 869 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
865 | 870 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
866 | 871 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
881 | 886 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
882 | 887 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
883 | 888 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
889 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
884 | 890 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
885 | 891 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
886 | 892 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
915 | 921 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
916 | 922 | HAVE_SETENV = @HAVE_SETENV@ |
917 | 923 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
924 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
918 | 925 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
919 | 926 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
920 | 927 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
929 | 936 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
930 | 937 | HAVE_STRSEP = @HAVE_STRSEP@ |
931 | 938 | HAVE_STRTOD = @HAVE_STRTOD@ |
939 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
932 | 940 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
933 | 941 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
934 | 942 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
1007 | 1015 | LIBINTL = @LIBINTL@ |
1008 | 1016 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
1009 | 1017 | LIBOBJS = @LIBOBJS@ |
1010 | LIBPTH = @LIBPTH@ | |
1011 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
1012 | 1018 | LIBS = @LIBS@ |
1013 | 1019 | LIBTHREAD = @LIBTHREAD@ |
1014 | 1020 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
1024 | 1030 | LTLIBINTL = @LTLIBINTL@ |
1025 | 1031 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
1026 | 1032 | LTLIBOBJS = @LTLIBOBJS@ |
1027 | LTLIBPTH = @LTLIBPTH@ | |
1028 | 1033 | LTLIBTHREAD = @LTLIBTHREAD@ |
1029 | 1034 | MAKEINFO = @MAKEINFO@ |
1030 | 1035 | MKDIR_P = @MKDIR_P@ |
1121 | 1126 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1122 | 1127 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1123 | 1128 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1129 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1124 | 1130 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1125 | 1131 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1126 | 1132 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1154 | 1160 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1155 | 1161 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1156 | 1162 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1163 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1157 | 1164 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1158 | 1165 | REPLACE_READ = @REPLACE_READ@ |
1159 | 1166 | REPLACE_READLINK = @REPLACE_READLINK@ |
1166 | 1173 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1167 | 1174 | REPLACE_SETENV = @REPLACE_SETENV@ |
1168 | 1175 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1176 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1169 | 1177 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1170 | 1178 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1171 | 1179 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1184 | 1192 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1185 | 1193 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1186 | 1194 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1195 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1187 | 1196 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1188 | 1197 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1189 | 1198 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
63 | 63 | __ __p print_tree |
64 | 64 | ); |
65 | 65 | |
66 | $VERSION = '6.6.91'; | |
66 | $VERSION = '6.6.92'; | |
67 | 67 | |
68 | 68 | # i18n |
69 | 69 | sub N__($) |
48 | 48 | @EXPORT = qw( |
49 | 49 | ); |
50 | 50 | |
51 | $VERSION = '6.6.91'; | |
51 | $VERSION = '6.6.92'; | |
52 | 52 | |
53 | 53 | my %defaults = ( |
54 | 54 | 'ENABLE_ENCODING' => 1, |
46 | 46 | @EXPORT = qw( |
47 | 47 | ); |
48 | 48 | |
49 | $VERSION = '6.6.91'; | |
49 | $VERSION = '6.6.92'; | |
50 | 50 | |
51 | 51 | my $nbsp = '&#'.hex('00A0').';'; |
52 | 52 | my $mdash = '&#'.hex('2014').';'; |
70 | 70 | @EXPORT = qw( |
71 | 71 | ); |
72 | 72 | |
73 | $VERSION = '6.6.91'; | |
73 | $VERSION = '6.6.92'; | |
74 | 74 | |
75 | 75 | # misc commands that are of use for formatting. |
76 | 76 | my %formatting_misc_commands = %Texinfo::Convert::Text::formatting_misc_commands; |
46 | 46 | @EXPORT = qw( |
47 | 47 | ); |
48 | 48 | |
49 | $VERSION = '6.6.91'; | |
49 | $VERSION = '6.6.92'; | |
50 | 50 | |
51 | 51 | my $ixin_version = 1; |
52 | 52 |
45 | 45 | @EXPORT = qw( |
46 | 46 | ); |
47 | 47 | |
48 | $VERSION = '6.6.91'; | |
48 | $VERSION = '6.6.92'; | |
49 | 49 | |
50 | 50 | my %defaults = ( |
51 | 51 | 'ENABLE_ENCODING' => 0, |
42 | 42 | @EXPORT = qw( |
43 | 43 | ); |
44 | 44 | |
45 | $VERSION = '6.6.91'; | |
45 | $VERSION = '6.6.92'; | |
46 | 46 | |
47 | 47 | my $STDIN_DOCU_NAME = 'stdin'; |
48 | 48 |
19 | 19 | use strict; |
20 | 20 | use warnings; |
21 | 21 | |
22 | our $VERSION = '6.6.91'; | |
22 | our $VERSION = '6.6.92'; | |
23 | 23 | |
24 | 24 | use Texinfo::XSLoader; |
25 | 25 |
60 | 60 | @EXPORT = qw( |
61 | 61 | ); |
62 | 62 | |
63 | $VERSION = '6.6.91'; | |
63 | $VERSION = '6.6.92'; | |
64 | 64 | |
65 | 65 | # misc commands that are of use for formatting. |
66 | 66 | my %formatting_misc_commands = %Texinfo::Convert::Text::formatting_misc_commands; |
39 | 39 | @EXPORT = qw( |
40 | 40 | ); |
41 | 41 | |
42 | $VERSION = '6.6.91'; | |
42 | $VERSION = '6.6.92'; | |
43 | 43 | |
44 | 44 | my %misc_commands = %Texinfo::Common::misc_commands; |
45 | 45 | my %brace_commands = %Texinfo::Common::brace_commands; |
42 | 42 | @EXPORT = qw( |
43 | 43 | ); |
44 | 44 | |
45 | $VERSION = '6.6.91'; | |
45 | $VERSION = '6.6.92'; | |
46 | 46 | |
47 | 47 | # SXML specific |
48 | 48 | my %defaults = ( |
44 | 44 | @EXPORT = qw( |
45 | 45 | ); |
46 | 46 | |
47 | $VERSION = '6.6.91'; | |
47 | $VERSION = '6.6.92'; | |
48 | 48 | |
49 | 49 | # XML specific |
50 | 50 | my %defaults = ( |
46 | 46 | @EXPORT = qw( |
47 | 47 | ); |
48 | 48 | |
49 | $VERSION = '6.6.91'; | |
49 | $VERSION = '6.6.92'; | |
50 | 50 | |
51 | 51 | # this is in fact not needed for 'footnote', 'shortcaption', 'caption' |
52 | 52 | # when they have no brace_command_arg, see below. |
21 | 21 | use strict; |
22 | 22 | use warnings; |
23 | 23 | |
24 | our $VERSION = '6.6.91'; | |
24 | our $VERSION = '6.6.92'; | |
25 | 25 | |
26 | 26 | use Texinfo::XSLoader; |
27 | 27 |
98 | 98 | @EXPORT = qw( |
99 | 99 | ); |
100 | 100 | |
101 | $VERSION = '6.6.91'; | |
101 | $VERSION = '6.6.92'; | |
102 | 102 | |
103 | 103 | sub N__($) |
104 | 104 | { |
63 | 63 | @EXPORT = qw( |
64 | 64 | ); |
65 | 65 | |
66 | $VERSION = '6.6.91'; | |
66 | $VERSION = '6.6.92'; | |
67 | 67 | |
68 | 68 | |
69 | 69 | my %types_to_enter; |
104 | 104 | $(top_srcdir)/gnulib/m4/gettext.m4 \ |
105 | 105 | $(top_srcdir)/gnulib/m4/gnulib-common.m4 \ |
106 | 106 | $(top_srcdir)/gnulib/m4/gnulib-comp.m4 \ |
107 | $(top_srcdir)/gnulib/m4/host-cpu-c-abi.m4 \ | |
107 | 108 | $(top_srcdir)/gnulib/m4/iconv.m4 \ |
108 | 109 | $(top_srcdir)/gnulib/m4/include_next.m4 \ |
109 | 110 | $(top_srcdir)/gnulib/m4/intmax_t.m4 \ |
544 | 545 | GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ |
545 | 546 | GNULIB_WMEMSET = @GNULIB_WMEMSET@ |
546 | 547 | GREP = @GREP@ |
548 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
547 | 549 | HAVE_BTOWC = @HAVE_BTOWC@ |
548 | 550 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
549 | 551 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
1218 | 1218 | m4_include([gnulib/m4/gettext.m4]) |
1219 | 1219 | m4_include([gnulib/m4/gnulib-common.m4]) |
1220 | 1220 | m4_include([gnulib/m4/gnulib-comp.m4]) |
1221 | m4_include([gnulib/m4/host-cpu-c-abi.m4]) | |
1221 | 1222 | m4_include([gnulib/m4/iconv.m4]) |
1222 | 1223 | m4_include([gnulib/m4/include_next.m4]) |
1223 | 1224 | m4_include([gnulib/m4/intmax_t.m4]) |
438 | 438 | |
439 | 439 | /* The _Noreturn keyword of C11. */ |
440 | 440 | #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))) | |
442 | 444 | # 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__))) | |
445 | 448 | /* _Noreturn works as-is. */ |
446 | 449 | # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C |
447 | 450 | # define _Noreturn __attribute__ ((__noreturn__)) |
468 | 471 | |
469 | 472 | /* Define to 1 if the system <stdint.h> predates C++11. */ |
470 | 473 | #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 | ||
471 | 501 | |
472 | 502 | /* Please see the Gnulib manual for how to use these macros. |
473 | 503 |
1 | 1 | # Output a system dependent set of variables, describing how to set the |
2 | 2 | # run time search path of shared libraries in an executable. |
3 | 3 | # |
4 | # Copyright 1996-2016 Free Software Foundation, Inc. | |
4 | # Copyright 1996-2019 Free Software Foundation, Inc. | |
5 | 5 | # Taken from GNU libtool, 2001 |
6 | 6 | # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
7 | 7 | # |
1017 | 1017 | PRAGMA_SYSTEM_HEADER |
1018 | 1018 | INCLUDE_NEXT_AS_FIRST_DIRECTIVE |
1019 | 1019 | INCLUDE_NEXT |
1020 | HAVE_ALLOCA_H | |
1020 | 1021 | GL_GENERATE_ALLOCA_H_FALSE |
1021 | 1022 | GL_GENERATE_ALLOCA_H_TRUE |
1022 | 1023 | ALLOCA_H |
5985 | 5986 | } |
5986 | 5987 | fi |
5987 | 5988 | |
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 | |
5991 | 5993 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 |
5992 | 5994 | $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 | |
6020 | 5995 | elif test "$with_gnu_ld" = yes; then |
6021 | 5996 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 |
6022 | 5997 | $as_echo_n "checking for GNU ld... " >&6; } |
6024 | 5999 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 |
6025 | 6000 | $as_echo_n "checking for non-GNU ld... " >&6; } |
6026 | 6001 | 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 : | |
6028 | 6007 | $as_echo_n "(cached) " >&6 |
6029 | 6008 | 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 | ;; | |
6047 | 6041 | esac |
6048 | 6042 | 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 | |
6057 | 6117 | if test -n "$LD"; then |
6058 | 6118 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 |
6059 | 6119 | $as_echo "$LD" >&6; } |
6060 | 6120 | else |
6061 | 6121 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6062 | 6122 | $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 | |
6065 | 6125 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 |
6066 | 6126 | $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } |
6067 | 6127 | if ${acl_cv_prog_gnu_ld+:} false; then : |
6118 | 6178 | |
6119 | 6179 | |
6120 | 6180 | |
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 | ||
6123 | 6415 | case "$host_os" in |
6124 | 6416 | 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 | |
6126 | 6418 | $as_echo_n "checking for 64-bit host... " >&6; } |
6127 | 6419 | if ${gl_cv_solaris_64bit+:} false; then : |
6128 | 6420 | $as_echo_n "(cached) " >&6 |
6129 | 6421 | else |
6130 | 6422 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
6131 | 6423 | /* end confdefs.h. */ |
6132 | ||
6133 | 6424 | #ifdef _LP64 |
6134 | sixtyfour bits | |
6135 | #endif | |
6425 | int ok; | |
6426 | #else | |
6427 | error fail | |
6428 | #endif | |
6136 | 6429 | |
6137 | 6430 | _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 : | |
6140 | 6432 | gl_cv_solaris_64bit=yes |
6141 | 6433 | else |
6142 | 6434 | gl_cv_solaris_64bit=no |
6143 | 6435 | fi |
6144 | rm -f conftest* | |
6145 | ||
6436 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
6146 | 6437 | |
6147 | 6438 | fi |
6148 | 6439 | { $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 | |
6170 | 6473 | 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/.*,//'` | |
6182 | 6499 | |
6183 | 6500 | |
6184 | 6501 | |
6227 | 6544 | additional_includedir="$withval/include" |
6228 | 6545 | additional_libdir="$withval/$acl_libdirstem" |
6229 | 6546 | if test "$acl_libdirstem2" != "$acl_libdirstem" \ |
6230 | && ! test -d "$withval/$acl_libdirstem"; then | |
6547 | && test ! -d "$withval/$acl_libdirstem"; then | |
6231 | 6548 | additional_libdir="$withval/$acl_libdirstem2" |
6232 | 6549 | fi |
6233 | 6550 | fi |
6668 | 6985 | |
6669 | 6986 | |
6670 | 6987 | |
6671 | ||
6672 | 6988 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 |
6673 | 6989 | $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } |
6674 | 6990 | if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : |
7062 | 7378 | #endif |
7063 | 7379 | /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is |
7064 | 7380 | 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 | } | |
7074 | 7402 | return result; |
7075 | 7403 | |
7076 | 7404 | ; |
7123 | 7451 | |
7124 | 7452 | |
7125 | 7453 | |
7126 | ||
7127 | 7454 | use_additional=yes |
7128 | 7455 | |
7129 | 7456 | acl_save_prefix="$prefix" |
7161 | 7488 | additional_includedir="$withval/include" |
7162 | 7489 | additional_libdir="$withval/$acl_libdirstem" |
7163 | 7490 | if test "$acl_libdirstem2" != "$acl_libdirstem" \ |
7164 | && ! test -d "$withval/$acl_libdirstem"; then | |
7491 | && test ! -d "$withval/$acl_libdirstem"; then | |
7165 | 7492 | additional_libdir="$withval/$acl_libdirstem2" |
7166 | 7493 | fi |
7167 | 7494 | fi |
7577 | 7904 | |
7578 | 7905 | |
7579 | 7906 | |
7580 | ||
7581 | 7907 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 |
7582 | 7908 | $as_echo_n "checking for GNU gettext in libintl... " >&6; } |
7583 | 7909 | if eval \${$gt_func_gnugettext_libintl+:} false; then : |
7775 | 8101 | |
7776 | 8102 | |
7777 | 8103 | XSUBPP=${XSUBPP-"${am_missing_run}xsubpp"} |
8104 | ||
7778 | 8105 | |
7779 | 8106 | |
7780 | 8107 | |
8826 | 9153 | #endif |
8827 | 9154 | /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is |
8828 | 9155 | 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 | } | |
8838 | 9177 | return result; |
8839 | 9178 | |
8840 | 9179 | ; |
8924 | 9263 | $am_cv_proto_iconv" >&5 |
8925 | 9264 | $as_echo " |
8926 | 9265 | $am_cv_proto_iconv" >&6; } |
9266 | else | |
9267 | am_cv_proto_iconv_arg1="" | |
9268 | fi | |
8927 | 9269 | |
8928 | 9270 | cat >>confdefs.h <<_ACEOF |
8929 | 9271 | #define ICONV_CONST $am_cv_proto_iconv_arg1 |
8930 | 9272 | _ACEOF |
8931 | 9273 | |
8932 | 9274 | |
8933 | fi | |
8934 | 9275 | |
8935 | 9276 | |
8936 | 9277 | |
9236 | 9577 | # memchr should not dereference overestimated length after a match |
9237 | 9578 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 |
9238 | 9579 | # 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. | |
9239 | 9582 | # Assume that memchr works on platforms that lack mprotect. |
9240 | 9583 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 |
9241 | 9584 | $as_echo_n "checking whether memchr works... " >&6; } |
9244 | 9587 | else |
9245 | 9588 | if test "$cross_compiling" = yes; then : |
9246 | 9589 | 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" ;; | |
9251 | 9596 | esac |
9252 | 9597 | |
9253 | 9598 | else |
9300 | 9645 | if (memchr (fence - 1, 0, 3) != fence - 1) |
9301 | 9646 | result |= 4; |
9302 | 9647 | } |
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 | } | |
9303 | 9657 | return result; |
9304 | 9658 | |
9305 | 9659 | ; |
11250 | 11604 | case "$host_os" in |
11251 | 11605 | # Guess yes on glibc systems. |
11252 | 11606 | *-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";; | |
11253 | 11609 | # Guess yes on FreeBSD >= 5. |
11254 | 11610 | freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; |
11255 | 11611 | freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
11272 | 11628 | netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
11273 | 11629 | # Guess yes on BeOS. |
11274 | 11630 | 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";; | |
11275 | 11633 | # Guess yes on MSVC, no on mingw. |
11276 | 11634 | mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
11277 | 11635 | /* end confdefs.h. */ |
11644 | 12002 | fi |
11645 | 12003 | |
11646 | 12004 | |
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 | ||
11647 | 12012 | |
11648 | 12013 | |
11649 | 12014 | |
11886 | 12251 | $as_echo_n "(cached) " >&6 |
11887 | 12252 | else |
11888 | 12253 | 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 | |
11891 | 12256 | /* end confdefs.h. */ |
11892 | 12257 | |
11893 | 12258 | #include <features.h> |
11902 | 12267 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : |
11903 | 12268 | gl_cv_func_working_getdelim="guessing yes" |
11904 | 12269 | 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 | ||
11906 | 12275 | fi |
11907 | 12276 | rm -f conftest* |
11908 | 12277 | |
11951 | 12320 | conftest.$ac_objext conftest.beam conftest.$ac_ext |
11952 | 12321 | fi |
11953 | 12322 | |
12323 | ||
11954 | 12324 | fi |
11955 | 12325 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 |
11956 | 12326 | $as_echo "$gl_cv_func_working_getdelim" >&6; } |
11957 | 12327 | case "$gl_cv_func_working_getdelim" in |
11958 | *no) | |
11959 | REPLACE_GETDELIM=1 | |
11960 | ;; | |
12328 | *yes) ;; | |
12329 | *) REPLACE_GETDELIM=1 ;; | |
11961 | 12330 | esac |
11962 | 12331 | else |
11963 | 12332 | HAVE_GETDELIM=0 |
12041 | 12410 | $as_echo_n "(cached) " >&6 |
12042 | 12411 | else |
12043 | 12412 | 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 | |
12046 | 12415 | /* end confdefs.h. */ |
12047 | 12416 | |
12048 | 12417 | #include <features.h> |
12057 | 12426 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : |
12058 | 12427 | am_cv_func_working_getline="guessing yes" |
12059 | 12428 | 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 | ||
12061 | 12434 | fi |
12062 | 12435 | rm -f conftest* |
12063 | 12436 | |
12107 | 12480 | conftest.$ac_objext conftest.beam conftest.$ac_ext |
12108 | 12481 | fi |
12109 | 12482 | |
12483 | ||
12110 | 12484 | fi |
12111 | 12485 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 |
12112 | 12486 | $as_echo "$am_cv_func_working_getline" >&6; } |
12117 | 12491 | fi |
12118 | 12492 | |
12119 | 12493 | case "$am_cv_func_working_getline" in |
12120 | *no) | |
12494 | *yes) ;; | |
12495 | *) | |
12121 | 12496 | REPLACE_GETLINE=1 |
12122 | 12497 | ;; |
12123 | 12498 | esac |
85 | 85 | alloca.h: alloca.in.h $(top_builddir)/config.status |
86 | 86 | $(AM_V_GEN)rm -f $@-t $@ && \ |
87 | 87 | { 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; \ | |
89 | 89 | } > $@-t && \ |
90 | 90 | mv -f $@-t $@ |
91 | 91 | else |
142 | 142 | $(top_srcdir)/gnulib/m4/gettext.m4 \ |
143 | 143 | $(top_srcdir)/gnulib/m4/gnulib-common.m4 \ |
144 | 144 | $(top_srcdir)/gnulib/m4/gnulib-comp.m4 \ |
145 | $(top_srcdir)/gnulib/m4/host-cpu-c-abi.m4 \ | |
145 | 146 | $(top_srcdir)/gnulib/m4/iconv.m4 \ |
146 | 147 | $(top_srcdir)/gnulib/m4/include_next.m4 \ |
147 | 148 | $(top_srcdir)/gnulib/m4/intmax_t.m4 \ |
494 | 495 | GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ |
495 | 496 | GNULIB_WMEMSET = @GNULIB_WMEMSET@ |
496 | 497 | GREP = @GREP@ |
498 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
497 | 499 | HAVE_BTOWC = @HAVE_BTOWC@ |
498 | 500 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
499 | 501 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
1297 | 1299 | @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status |
1298 | 1300 | @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ |
1299 | 1301 | @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; \ | |
1301 | 1303 | @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ |
1302 | 1304 | @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ |
1303 | 1305 | @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status |
35 | 35 | |
36 | 36 | #ifndef alloca |
37 | 37 | # 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 | |
38 | 44 | # define alloca __builtin_alloca |
39 | 45 | # elif defined _AIX |
40 | 46 | # define alloca __alloca |
0 | 0 | # 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 | ||
1 | 17 | # POSIX states that when the character is found, memchr must not read extra |
2 | 18 | # bytes in an overestimated length (for example, where memchr is used to |
3 | 19 | # implement strnlen). However, we use a safe word read to provide a speedup. |
0 | 0 | # 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 | ||
1 | 17 | # This use is OK because it provides only a speedup. |
2 | 18 | { |
3 | 19 | rawmemchr-value4 |
115 | 115 | #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ |
116 | 116 | && ! defined __GLIBC__ |
117 | 117 | # 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> | |
118 | 125 | #endif |
119 | 126 | |
120 | 127 | /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include |
0 | 0 | # 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 | ||
1 | 17 | # This use is OK because it provides only a speedup. |
2 | 18 | { |
3 | 19 | strchrnul-value4 |
4873 | 4873 | # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \ |
4874 | 4874 | && !defined __UCLIBC__) \ |
4875 | 4875 | || (defined __APPLE__ && defined __MACH__) \ |
4876 | || defined __ANDROID__ \ | |
4876 | 4877 | || (defined _WIN32 && ! defined __CYGWIN__)) |
4877 | 4878 | fbp[1] = '%'; |
4878 | 4879 | fbp[2] = 'n'; |
4894 | 4895 | On Mac OS X 10.13 or newer, the use of %n in format strings |
4895 | 4896 | in writable memory by default crashes the program, so we |
4896 | 4897 | 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. */ | |
4897 | 4906 | /* On native Windows systems (such as mingw), we can avoid using |
4898 | 4907 | %n because: |
4899 | 4908 | - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, |
4907 | 4916 | Windows Vista, the use of %n in format strings by default |
4908 | 4917 | crashes the program. See |
4909 | 4918 | <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> | |
4911 | 4920 | So we should avoid %n in this situation. */ |
4912 | 4921 | fbp[1] = '\0'; |
4913 | 4922 | # endif |
20 | 20 | #define _GL_VERIFY_H |
21 | 21 | |
22 | 22 | |
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 | |
42 | 48 | #endif |
43 | 49 | |
44 | 50 | /* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other |
45 | 51 | system headers, defines a conflicting _Static_assert that is no |
46 | 52 | better than ours; override it. */ |
47 | #ifndef _GL_HAVE_STATIC_ASSERT | |
53 | #ifndef _GL_HAVE__STATIC_ASSERT | |
48 | 54 | # include <stddef.h> |
49 | 55 | # undef _Static_assert |
50 | 56 | #endif |
142 | 148 | which do not support _Static_assert, also do not warn about the |
143 | 149 | last declaration mentioned above. |
144 | 150 | |
145 | * GCC warns if -Wnested-externs is enabled and verify() is used | |
151 | * GCC warns if -Wnested-externs is enabled and 'verify' is used | |
146 | 152 | 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. | |
148 | 154 | |
149 | 155 | * In C++, any struct definition inside sizeof is invalid. |
150 | 156 | Use a template type to work around the problem. */ |
196 | 202 | #endif |
197 | 203 | |
198 | 204 | /* 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. | |
201 | 210 | |
202 | 211 | Unfortunately, unlike C11, this implementation must appear as an |
203 | 212 | ordinary declaration, and cannot appear inside struct { ... }. */ |
204 | 213 | |
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, ...) \ | |
209 | 218 | extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ |
210 | 219 | [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] |
211 | 220 | #endif |
212 | 221 | |
213 | 222 | /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ |
214 | 223 | #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 | |
219 | 229 | # define static_assert _Static_assert /* C11 requires this #define. */ |
220 | 230 | # endif |
221 | 231 | #endif |
227 | 237 | assert (R), there is no run-time overhead. |
228 | 238 | |
229 | 239 | 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 | |
231 | 241 | integer constant expression contexts. verify (R) is for declaration |
232 | 242 | contexts, e.g., the top level. */ |
233 | 243 | |
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 | ||
241 | 244 | /* Verify requirement R at compile-time. Return the value of the |
242 | 245 | expression E. */ |
243 | 246 | |
245 | 248 | (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) |
246 | 249 | |
247 | 250 | /* 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 ")", -) | |
255 | 260 | #endif |
256 | 261 | |
257 | 262 | #ifndef __has_builtin |
258 | 263 | # define __has_builtin(x) 0 |
259 | 264 | #endif |
260 | 265 | |
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. */ | |
264 | 271 | |
265 | 272 | #if (__has_builtin (__builtin_unreachable) \ |
266 | 273 | || 4 < __GNUC__ + (5 <= __GNUC_MINOR__)) |
0 | # alloca.m4 serial 14 | |
0 | # alloca.m4 serial 15 | |
1 | 1 | dnl Copyright (C) 2002-2004, 2006-2007, 2009-2019 Free Software Foundation, |
2 | 2 | dnl Inc. |
3 | 3 | dnl This file is free software; the Free Software Foundation |
36 | 36 | fi |
37 | 37 | AC_SUBST([ALLOCA_H]) |
38 | 38 | 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]) | |
39 | 46 | ]) |
40 | 47 | |
41 | 48 | # Prerequisites of lib/alloca.c. |
0 | # getdelim.m4 serial 12 | |
0 | # getdelim.m4 serial 13 | |
1 | 1 | |
2 | 2 | dnl Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc. |
3 | 3 | dnl |
10 | 10 | AC_DEFUN([gl_FUNC_GETDELIM], |
11 | 11 | [ |
12 | 12 | AC_REQUIRE([gl_STDIO_H_DEFAULTS]) |
13 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | |
13 | 14 | |
14 | 15 | dnl Persuade glibc <stdio.h> to declare getdelim(). |
15 | 16 | AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) |
20 | 21 | if test $ac_cv_func_getdelim = yes; then |
21 | 22 | HAVE_GETDELIM=1 |
22 | 23 | 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([[ | |
26 | 28 | # include <stdio.h> |
27 | 29 | # include <stdlib.h> |
28 | 30 | # include <string.h> |
52 | 54 | fclose (in); |
53 | 55 | return 0; |
54 | 56 | } |
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 | [ | |
60 | 64 | #include <features.h> |
61 | 65 | #ifdef __GNU_LIBRARY__ |
62 | 66 | #if (__GLIBC__ >= 2) && !defined __UCLIBC__ |
63 | 67 | Lucky GNU user |
64 | 68 | #endif |
65 | 69 | #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 | ]) | |
70 | 79 | case "$gl_cv_func_working_getdelim" in |
71 | *no) | |
72 | REPLACE_GETDELIM=1 | |
73 | ;; | |
80 | *yes) ;; | |
81 | *) REPLACE_GETDELIM=1 ;; | |
74 | 82 | esac |
75 | 83 | else |
76 | 84 | HAVE_GETDELIM=0 |
0 | # getline.m4 serial 28 | |
0 | # getline.m4 serial 29 | |
1 | 1 | |
2 | 2 | dnl Copyright (C) 1998-2003, 2005-2007, 2009-2019 Free Software Foundation, |
3 | 3 | dnl Inc. |
15 | 15 | AC_DEFUN([gl_FUNC_GETLINE], |
16 | 16 | [ |
17 | 17 | AC_REQUIRE([gl_STDIO_H_DEFAULTS]) |
18 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | |
18 | 19 | |
19 | 20 | dnl Persuade glibc <stdio.h> to declare getline(). |
20 | 21 | AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) |
27 | 28 | gl_getline_needs_run_time_check=yes], |
28 | 29 | [am_cv_func_working_getline=no]) |
29 | 30 | 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([[ | |
33 | 35 | # include <stdio.h> |
34 | 36 | # include <stdlib.h> |
35 | 37 | # include <string.h> |
60 | 62 | fclose (in); |
61 | 63 | return 0; |
62 | 64 | } |
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 | [ | |
68 | 72 | #include <features.h> |
69 | 73 | #ifdef __GNU_LIBRARY__ |
70 | 74 | #if (__GLIBC__ >= 2) && !defined __UCLIBC__ |
71 | 75 | Lucky GNU user |
72 | 76 | #endif |
73 | 77 | #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 | ]) | |
78 | 87 | fi |
79 | 88 | |
80 | 89 | if test $ac_cv_have_decl_getline = no; then |
82 | 91 | fi |
83 | 92 | |
84 | 93 | case "$am_cv_func_working_getline" in |
85 | *no) | |
94 | *yes) ;; | |
95 | *) | |
86 | 96 | dnl Set REPLACE_GETLINE always: Even if we have not found the broken |
87 | 97 | dnl getline function among $LIBS, it may exist in libinet and the |
88 | 98 | dnl executable may be linked with -linet. |
0 | # gnulib-common.m4 serial 41 | |
0 | # gnulib-common.m4 serial 44 | |
1 | 1 | dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
16 | 16 | AH_VERBATIM([_Noreturn], |
17 | 17 | [/* The _Noreturn keyword of C11. */ |
18 | 18 | #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))) | |
20 | 22 | # 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__))) | |
23 | 26 | /* _Noreturn works as-is. */ |
24 | 27 | # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C |
25 | 28 | # define _Noreturn __attribute__ ((__noreturn__)) |
83 | 86 | #else |
84 | 87 | # define _GL_ATTRIBUTE_MALLOC /* empty */ |
85 | 88 | #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 | |
86 | 116 | ]) |
87 | 117 | dnl Preparation for running test programs: |
88 | 118 | 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. | |
2 | 3 | dnl This file is free software; the Free Software Foundation |
3 | 4 | dnl gives unlimited permission to copy and/or distribute it, |
4 | 5 | dnl with or without modifications, as long as this notice is preserved. |
166 | 167 | #endif |
167 | 168 | /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is |
168 | 169 | 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 | } | |
178 | 191 | return result; |
179 | 192 | ]])], |
180 | 193 | [am_cv_func_iconv_works=yes], , |
257 | 270 | am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` |
258 | 271 | AC_MSG_RESULT([ |
259 | 272 | $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 | ]) | |
270 | 287 | ]) |
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. | |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
4 | 4 | dnl with or without modifications, as long as this notice is preserved. |
46 | 46 | } |
47 | 47 | fi |
48 | 48 | |
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 | |
52 | 52 | 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 | |
80 | 53 | elif test "$with_gnu_ld" = yes; then |
81 | 54 | AC_MSG_CHECKING([for GNU ld]) |
82 | 55 | else |
83 | 56 | AC_MSG_CHECKING([for non-GNU ld]) |
84 | 57 | 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 | ;; | |
103 | 95 | esac |
104 | 96 | 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 | |
111 | 160 | if test -n "$LD"; then |
112 | 161 | AC_MSG_RESULT([$LD]) |
113 | 162 | else |
114 | 163 | AC_MSG_RESULT([no]) |
164 | AC_MSG_ERROR([no acceptable ld found in \$PATH]) | |
115 | 165 | fi |
116 | test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) | |
117 | 166 | AC_LIB_PROG_LD_GNU |
118 | 167 | ]) |
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. | |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
4 | 4 | dnl with or without modifications, as long as this notice is preserved. |
5 | 5 | |
6 | 6 | dnl From Bruno Haible. |
7 | 7 | |
8 | AC_PREREQ([2.54]) | |
8 | AC_PREREQ([2.61]) | |
9 | 9 | |
10 | 10 | dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and |
11 | 11 | dnl the libraries corresponding to explicit and implicit dependencies. |
123 | 123 | dnl acl_hardcode_minus_L. |
124 | 124 | AC_DEFUN([AC_LIB_RPATH], |
125 | 125 | [ |
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]) | |
128 | 128 | AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS |
129 | 129 | AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld |
130 | 130 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host |
186 | 186 | pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], |
187 | 187 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) |
188 | 188 | 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)]) | |
191 | 189 | dnl By default, look in $includedir and $libdir. |
192 | 190 | use_additional=yes |
193 | 191 | AC_LIB_WITH_FINAL_PREFIX([ |
194 | 192 | eval additional_includedir=\"$includedir\" |
195 | 193 | eval additional_libdir=\"$libdir\" |
196 | 194 | ]) |
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]], | |
200 | 198 | [ |
201 | 199 | if test "X$withval" = "Xno"; then |
202 | 200 | use_additional=no |
210 | 208 | additional_includedir="$withval/include" |
211 | 209 | additional_libdir="$withval/$acl_libdirstem" |
212 | 210 | if test "$acl_libdirstem2" != "$acl_libdirstem" \ |
213 | && ! test -d "$withval/$acl_libdirstem"; then | |
211 | && test ! -d "$withval/$acl_libdirstem"; then | |
214 | 212 | additional_libdir="$withval/$acl_libdirstem2" |
215 | 213 | fi |
216 | 214 | fi |
669 | 667 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" |
670 | 668 | done |
671 | 669 | fi |
672 | popdef([P_A_C_K]) | |
673 | 670 | popdef([PACKLIBS]) |
674 | 671 | popdef([PACKUP]) |
675 | 672 | 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. | |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
4 | 4 | dnl with or without modifications, as long as this notice is preserved. |
5 | 5 | |
6 | 6 | 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])])]) | |
14 | 7 | |
15 | 8 | dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed |
16 | 9 | dnl to access previously installed libraries. The basic assumption is that |
31 | 24 | eval additional_includedir=\"$includedir\" |
32 | 25 | eval additional_libdir=\"$libdir\" |
33 | 26 | ]) |
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]], | |
37 | 30 | [ |
38 | 31 | if test "X$withval" = "Xno"; then |
39 | 32 | use_additional=no |
173 | 166 | dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or |
174 | 167 | dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. |
175 | 168 | AC_REQUIRE([AC_CANONICAL_HOST]) |
176 | acl_libdirstem=lib | |
177 | acl_libdirstem2= | |
169 | AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) | |
170 | ||
178 | 171 | case "$host_os" in |
179 | 172 | 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. | |
185 | 173 | 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 | |
212 | 225 | 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 | |
1 | 1 | dnl Copyright (C) 2002-2004, 2009-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
28 | 28 | # memchr should not dereference overestimated length after a match |
29 | 29 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 |
30 | 30 | # 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. | |
31 | 33 | # Assume that memchr works on platforms that lack mprotect. |
32 | 34 | AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], |
33 | 35 | [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ |
73 | 75 | if (memchr (fence - 1, 0, 3) != fence - 1) |
74 | 76 | result |= 4; |
75 | 77 | } |
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 | } | |
76 | 87 | return result; |
77 | 88 | ]])], |
78 | 89 | [gl_cv_func_memchr_works=yes], |
79 | 90 | [gl_cv_func_memchr_works=no], |
80 | 91 | [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" ;; | |
85 | 98 | esac |
86 | 99 | ]) |
87 | 100 | ]) |
0 | # printf.m4 serial 59 | |
0 | # printf.m4 serial 61 | |
1 | 1 | dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. |
2 | 2 | dnl This file is free software; the Free Software Foundation |
3 | 3 | dnl gives unlimited permission to copy and/or distribute it, |
61 | 61 | changequote(,)dnl |
62 | 62 | # Guess yes on glibc systems. |
63 | 63 | *-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";; | |
64 | 66 | # Guess yes on FreeBSD >= 5. |
65 | 67 | freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";; |
66 | 68 | freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; |
78 | 80 | netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) |
79 | 81 | gl_cv_func_printf_sizes_c99="guessing no";; |
80 | 82 | 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";; | |
81 | 85 | changequote([,])dnl |
82 | 86 | # Guess yes on MSVC, no on mingw. |
83 | 87 | mingw*) AC_EGREP_CPP([Known], [ |
131 | 135 | [gl_cv_func_printf_long_double=yes], |
132 | 136 | [gl_cv_func_printf_long_double=no], |
133 | 137 | [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], [ | |
137 | 144 | #ifdef _MSC_VER |
138 | 145 | Known |
139 | 146 | #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";; | |
145 | 152 | esac |
146 | 153 | ]) |
147 | 154 | ]) |
234 | 241 | changequote(,)dnl |
235 | 242 | # Guess yes on glibc systems. |
236 | 243 | *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";; |
244 | # Guess yes on musl systems. | |
245 | *-musl*) gl_cv_func_printf_infinite="guessing yes";; | |
237 | 246 | # Guess yes on FreeBSD >= 6. |
238 | 247 | freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; |
239 | 248 | freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; |
249 | 258 | netbsd*) gl_cv_func_printf_infinite="guessing yes";; |
250 | 259 | # Guess yes on BeOS. |
251 | 260 | beos*) gl_cv_func_printf_infinite="guessing yes";; |
261 | # Guess no on Android. | |
262 | linux*-android*) gl_cv_func_printf_infinite="guessing no";; | |
252 | 263 | changequote([,])dnl |
253 | 264 | # Guess yes on MSVC, no on mingw. |
254 | 265 | mingw*) AC_EGREP_CPP([Known], [ |
449 | 460 | changequote(,)dnl |
450 | 461 | # Guess yes on glibc systems. |
451 | 462 | *-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";; | |
452 | 465 | # Guess yes on FreeBSD >= 6. |
453 | 466 | freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; |
454 | 467 | freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; |
455 | 468 | # Guess yes on HP-UX >= 11. |
456 | 469 | hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; |
457 | 470 | 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";; | |
458 | 473 | changequote([,])dnl |
459 | 474 | # Guess yes on MSVC, no on mingw. |
460 | 475 | mingw*) AC_EGREP_CPP([Known], [ |
565 | 580 | [gl_cv_func_printf_directive_a="guessing yes"], |
566 | 581 | [gl_cv_func_printf_directive_a="guessing no"]) |
567 | 582 | ;; |
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";; | |
568 | 587 | # Guess no on native Windows. |
569 | 588 | mingw*) gl_cv_func_printf_directive_a="guessing no";; |
570 | 589 | # If we don't know, assume the worst. |
613 | 632 | changequote(,)dnl |
614 | 633 | # Guess yes on glibc systems. |
615 | 634 | *-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";; | |
616 | 637 | # Guess yes on FreeBSD >= 6. |
617 | 638 | freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; |
618 | 639 | freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; |
622 | 643 | # Guess yes on Solaris >= 2.10. |
623 | 644 | solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";; |
624 | 645 | 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";; | |
625 | 648 | changequote([,])dnl |
626 | 649 | # Guess yes on MSVC, no on mingw. |
627 | 650 | mingw*) AC_EGREP_CPP([Known], [ |
687 | 710 | [gl_cv_func_printf_directive_n=yes], |
688 | 711 | [gl_cv_func_printf_directive_n=no], |
689 | 712 | [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";; | |
693 | 718 | esac |
694 | 719 | ]) |
695 | 720 | ]) |
765 | 790 | [ |
766 | 791 | changequote(,)dnl |
767 | 792 | 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";; | |
776 | 803 | esac |
777 | 804 | changequote([,])dnl |
778 | 805 | ]) |
809 | 836 | changequote(,)dnl |
810 | 837 | case "$host_os" in |
811 | 838 | 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";; | |
817 | 846 | esac |
818 | 847 | changequote([,])dnl |
819 | 848 | ]) |
848 | 877 | [ |
849 | 878 | changequote(,)dnl |
850 | 879 | 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";; | |
856 | 887 | esac |
857 | 888 | changequote([,])dnl |
858 | 889 | ]) |
889 | 920 | [ |
890 | 921 | changequote(,)dnl |
891 | 922 | 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";; | |
900 | 933 | esac |
901 | 934 | changequote([,])dnl |
902 | 935 | ]) |
934 | 967 | [ |
935 | 968 | changequote(,)dnl |
936 | 969 | 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";; | |
945 | 982 | esac |
946 | 983 | changequote([,])dnl |
947 | 984 | ]) |
994 | 1031 | changequote(,)dnl |
995 | 1032 | case "$host_os" in |
996 | 1033 | # 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" ;; | |
1001 | 1040 | esac |
1002 | 1041 | changequote([,])dnl |
1003 | 1042 | ]) |
1094 | 1133 | if test "$gl_cv_func_printf_enomem" = "guessing no"; then |
1095 | 1134 | changequote(,)dnl |
1096 | 1135 | 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";; | |
1119 | 1160 | esac |
1120 | 1161 | changequote([,])dnl |
1121 | 1162 | fi |
1176 | 1217 | case "$host_os" in |
1177 | 1218 | # Guess yes on glibc systems. |
1178 | 1219 | *-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";; | |
1179 | 1222 | # Guess yes on FreeBSD >= 5. |
1180 | 1223 | freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; |
1181 | 1224 | freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; |
1207 | 1250 | netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; |
1208 | 1251 | # Guess yes on BeOS. |
1209 | 1252 | 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";; | |
1210 | 1255 | # Guess no on native Windows. |
1211 | 1256 | mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; |
1212 | 1257 | # If we don't know, assume the worst. |
1276 | 1321 | changequote(,)dnl |
1277 | 1322 | # Guess yes on glibc systems. |
1278 | 1323 | *-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";; | |
1279 | 1326 | # Guess yes on FreeBSD >= 5. |
1280 | 1327 | freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; |
1281 | 1328 | freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
1298 | 1345 | netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; |
1299 | 1346 | # Guess yes on BeOS. |
1300 | 1347 | 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";; | |
1301 | 1350 | changequote([,])dnl |
1302 | 1351 | # Guess yes on MSVC, no on mingw. |
1303 | 1352 | mingw*) AC_EGREP_CPP([Known], [ |
1366 | 1415 | case "$host_os" in |
1367 | 1416 | # Guess yes on glibc systems. |
1368 | 1417 | *-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";; | |
1369 | 1420 | # Guess yes on FreeBSD >= 5. |
1370 | 1421 | freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; |
1371 | 1422 | freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; |
1390 | 1441 | netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; |
1391 | 1442 | # Guess yes on BeOS. |
1392 | 1443 | 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";; | |
1393 | 1446 | # Guess no on native Windows. |
1394 | 1447 | mingw*) gl_cv_func_snprintf_directive_n="guessing no";; |
1395 | 1448 | # If we don't know, assume the worst. |
1439 | 1492 | [gl_cv_func_snprintf_size1=yes], |
1440 | 1493 | [gl_cv_func_snprintf_size1=no], |
1441 | 1494 | [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" ;; | |
1445 | 1500 | esac |
1446 | 1501 | ]) |
1447 | 1502 | ]) |
1516 | 1571 | case "$host_os" in |
1517 | 1572 | # Guess yes on glibc systems. |
1518 | 1573 | *-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";; | |
1519 | 1576 | # Guess yes on FreeBSD >= 5. |
1520 | 1577 | freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; |
1521 | 1578 | freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; |
1539 | 1596 | netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; |
1540 | 1597 | # Guess yes on BeOS. |
1541 | 1598 | 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";; | |
1542 | 1601 | # Guess yes on native Windows. |
1543 | 1602 | mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; |
1544 | 1603 | # If we don't know, assume the worst. |
1625 | 1684 | dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . |
1626 | 1685 | dnl Haiku . . . # # # . # . . . . . ? . . ? . . . |
1627 | 1686 | dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . . |
1687 | dnl Android 4.3 . . # # # # # # . # . # . # . . . # . . | |
1628 | 1688 | dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . . |
1629 | 1689 | dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . . |
1630 | 1690 | dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . . |
86 | 86 | @EXPORT = qw( |
87 | 87 | ); |
88 | 88 | |
89 | $VERSION = '6.6.91'; | |
89 | $VERSION = '6.6.92'; | |
90 | 90 | |
91 | 91 | sub N__($) |
92 | 92 | { |
22 | 22 | |
23 | 23 | our $TEXINFO_XS; |
24 | 24 | |
25 | our $VERSION = '6.6.91'; | |
25 | our $VERSION = '6.6.92'; | |
26 | 26 | |
27 | 27 | our $disable_XS; |
28 | 28 |
561 | 561 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
562 | 562 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
563 | 563 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
564 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
564 | 565 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
565 | 566 | GNULIB_DUP = @GNULIB_DUP@ |
566 | 567 | GNULIB_DUP2 = @GNULIB_DUP2@ |
716 | 717 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
717 | 718 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
718 | 719 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
720 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
719 | 721 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
720 | 722 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
721 | 723 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
783 | 785 | GNULIB_WRITE = @GNULIB_WRITE@ |
784 | 786 | GNULIB__EXIT = @GNULIB__EXIT@ |
785 | 787 | GREP = @GREP@ |
788 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
786 | 789 | HAVE_ATOLL = @HAVE_ATOLL@ |
787 | 790 | HAVE_BTOWC = @HAVE_BTOWC@ |
788 | 791 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
789 | 792 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
790 | 793 | HAVE_CHOWN = @HAVE_CHOWN@ |
794 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
791 | 795 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
792 | 796 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
793 | 797 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
853 | 857 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
854 | 858 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
855 | 859 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
860 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
856 | 861 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
857 | 862 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
858 | 863 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
873 | 878 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
874 | 879 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
875 | 880 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
881 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
876 | 882 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
877 | 883 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
878 | 884 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
907 | 913 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
908 | 914 | HAVE_SETENV = @HAVE_SETENV@ |
909 | 915 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
916 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
910 | 917 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
911 | 918 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
912 | 919 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
921 | 928 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
922 | 929 | HAVE_STRSEP = @HAVE_STRSEP@ |
923 | 930 | HAVE_STRTOD = @HAVE_STRTOD@ |
931 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
924 | 932 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
925 | 933 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
926 | 934 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
999 | 1007 | LIBINTL = @LIBINTL@ |
1000 | 1008 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
1001 | 1009 | LIBOBJS = @LIBOBJS@ |
1002 | LIBPTH = @LIBPTH@ | |
1003 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
1004 | 1010 | LIBS = @LIBS@ |
1005 | 1011 | LIBTHREAD = @LIBTHREAD@ |
1006 | 1012 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
1016 | 1022 | LTLIBINTL = @LTLIBINTL@ |
1017 | 1023 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
1018 | 1024 | LTLIBOBJS = @LTLIBOBJS@ |
1019 | LTLIBPTH = @LTLIBPTH@ | |
1020 | 1025 | LTLIBTHREAD = @LTLIBTHREAD@ |
1021 | 1026 | MAKEINFO = @MAKEINFO@ |
1022 | 1027 | MKDIR_P = @MKDIR_P@ |
1113 | 1118 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1114 | 1119 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1115 | 1120 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1121 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1116 | 1122 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1117 | 1123 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1118 | 1124 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1146 | 1152 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1147 | 1153 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1148 | 1154 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1155 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1149 | 1156 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1150 | 1157 | REPLACE_READ = @REPLACE_READ@ |
1151 | 1158 | REPLACE_READLINK = @REPLACE_READLINK@ |
1158 | 1165 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1159 | 1166 | REPLACE_SETENV = @REPLACE_SETENV@ |
1160 | 1167 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1168 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1161 | 1169 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1162 | 1170 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1163 | 1171 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1176 | 1184 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1177 | 1185 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1178 | 1186 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1187 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1179 | 1188 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1180 | 1189 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1181 | 1190 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
275 | 275 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
276 | 276 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
277 | 277 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
278 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
278 | 279 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
279 | 280 | GNULIB_DUP = @GNULIB_DUP@ |
280 | 281 | GNULIB_DUP2 = @GNULIB_DUP2@ |
430 | 431 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
431 | 432 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
432 | 433 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
434 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
433 | 435 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
434 | 436 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
435 | 437 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
497 | 499 | GNULIB_WRITE = @GNULIB_WRITE@ |
498 | 500 | GNULIB__EXIT = @GNULIB__EXIT@ |
499 | 501 | GREP = @GREP@ |
502 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
500 | 503 | HAVE_ATOLL = @HAVE_ATOLL@ |
501 | 504 | HAVE_BTOWC = @HAVE_BTOWC@ |
502 | 505 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
503 | 506 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
504 | 507 | HAVE_CHOWN = @HAVE_CHOWN@ |
508 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
505 | 509 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
506 | 510 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
507 | 511 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
567 | 571 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
568 | 572 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
569 | 573 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
574 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
570 | 575 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
571 | 576 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
572 | 577 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
587 | 592 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
588 | 593 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
589 | 594 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
595 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
590 | 596 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
591 | 597 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
592 | 598 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
621 | 627 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
622 | 628 | HAVE_SETENV = @HAVE_SETENV@ |
623 | 629 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
630 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
624 | 631 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
625 | 632 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
626 | 633 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
635 | 642 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
636 | 643 | HAVE_STRSEP = @HAVE_STRSEP@ |
637 | 644 | HAVE_STRTOD = @HAVE_STRTOD@ |
645 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
638 | 646 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
639 | 647 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
640 | 648 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
713 | 721 | LIBINTL = @LIBINTL@ |
714 | 722 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
715 | 723 | LIBOBJS = @LIBOBJS@ |
716 | LIBPTH = @LIBPTH@ | |
717 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
718 | 724 | LIBS = @LIBS@ |
719 | 725 | LIBTHREAD = @LIBTHREAD@ |
720 | 726 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
730 | 736 | LTLIBINTL = @LTLIBINTL@ |
731 | 737 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
732 | 738 | LTLIBOBJS = @LTLIBOBJS@ |
733 | LTLIBPTH = @LTLIBPTH@ | |
734 | 739 | LTLIBTHREAD = @LTLIBTHREAD@ |
735 | 740 | MAKEINFO = @MAKEINFO@ |
736 | 741 | MKDIR_P = @MKDIR_P@ |
827 | 832 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
828 | 833 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
829 | 834 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
835 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
830 | 836 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
831 | 837 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
832 | 838 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
860 | 866 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
861 | 867 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
862 | 868 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
869 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
863 | 870 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
864 | 871 | REPLACE_READ = @REPLACE_READ@ |
865 | 872 | REPLACE_READLINK = @REPLACE_READLINK@ |
872 | 879 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
873 | 880 | REPLACE_SETENV = @REPLACE_SETENV@ |
874 | 881 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
882 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
875 | 883 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
876 | 884 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
877 | 885 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
890 | 898 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
891 | 899 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
892 | 900 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
901 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
893 | 902 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
894 | 903 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
895 | 904 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
275 | 275 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
276 | 276 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
277 | 277 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
278 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
278 | 279 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
279 | 280 | GNULIB_DUP = @GNULIB_DUP@ |
280 | 281 | GNULIB_DUP2 = @GNULIB_DUP2@ |
430 | 431 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
431 | 432 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
432 | 433 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
434 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
433 | 435 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
434 | 436 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
435 | 437 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
497 | 499 | GNULIB_WRITE = @GNULIB_WRITE@ |
498 | 500 | GNULIB__EXIT = @GNULIB__EXIT@ |
499 | 501 | GREP = @GREP@ |
502 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
500 | 503 | HAVE_ATOLL = @HAVE_ATOLL@ |
501 | 504 | HAVE_BTOWC = @HAVE_BTOWC@ |
502 | 505 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
503 | 506 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
504 | 507 | HAVE_CHOWN = @HAVE_CHOWN@ |
508 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
505 | 509 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
506 | 510 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
507 | 511 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
567 | 571 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
568 | 572 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
569 | 573 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
574 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
570 | 575 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
571 | 576 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
572 | 577 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
587 | 592 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
588 | 593 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
589 | 594 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
595 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
590 | 596 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
591 | 597 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
592 | 598 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
621 | 627 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
622 | 628 | HAVE_SETENV = @HAVE_SETENV@ |
623 | 629 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
630 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
624 | 631 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
625 | 632 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
626 | 633 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
635 | 642 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
636 | 643 | HAVE_STRSEP = @HAVE_STRSEP@ |
637 | 644 | HAVE_STRTOD = @HAVE_STRTOD@ |
645 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
638 | 646 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
639 | 647 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
640 | 648 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
713 | 721 | LIBINTL = @LIBINTL@ |
714 | 722 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
715 | 723 | LIBOBJS = @LIBOBJS@ |
716 | LIBPTH = @LIBPTH@ | |
717 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
718 | 724 | LIBS = @LIBS@ |
719 | 725 | LIBTHREAD = @LIBTHREAD@ |
720 | 726 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
730 | 736 | LTLIBINTL = @LTLIBINTL@ |
731 | 737 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
732 | 738 | LTLIBOBJS = @LTLIBOBJS@ |
733 | LTLIBPTH = @LTLIBPTH@ | |
734 | 739 | LTLIBTHREAD = @LTLIBTHREAD@ |
735 | 740 | MAKEINFO = @MAKEINFO@ |
736 | 741 | MKDIR_P = @MKDIR_P@ |
827 | 832 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
828 | 833 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
829 | 834 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
835 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
830 | 836 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
831 | 837 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
832 | 838 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
860 | 866 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
861 | 867 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
862 | 868 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
869 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
863 | 870 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
864 | 871 | REPLACE_READ = @REPLACE_READ@ |
865 | 872 | REPLACE_READLINK = @REPLACE_READLINK@ |
872 | 879 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
873 | 880 | REPLACE_SETENV = @REPLACE_SETENV@ |
874 | 881 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
882 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
875 | 883 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
876 | 884 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
877 | 885 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
890 | 898 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
891 | 899 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
892 | 900 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
901 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
893 | 902 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
894 | 903 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
895 | 904 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
275 | 275 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
276 | 276 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
277 | 277 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
278 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
278 | 279 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
279 | 280 | GNULIB_DUP = @GNULIB_DUP@ |
280 | 281 | GNULIB_DUP2 = @GNULIB_DUP2@ |
430 | 431 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
431 | 432 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
432 | 433 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
434 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
433 | 435 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
434 | 436 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
435 | 437 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
497 | 499 | GNULIB_WRITE = @GNULIB_WRITE@ |
498 | 500 | GNULIB__EXIT = @GNULIB__EXIT@ |
499 | 501 | GREP = @GREP@ |
502 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
500 | 503 | HAVE_ATOLL = @HAVE_ATOLL@ |
501 | 504 | HAVE_BTOWC = @HAVE_BTOWC@ |
502 | 505 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
503 | 506 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
504 | 507 | HAVE_CHOWN = @HAVE_CHOWN@ |
508 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
505 | 509 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
506 | 510 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
507 | 511 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
567 | 571 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
568 | 572 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
569 | 573 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
574 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
570 | 575 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
571 | 576 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
572 | 577 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
587 | 592 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
588 | 593 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
589 | 594 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
595 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
590 | 596 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
591 | 597 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
592 | 598 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
621 | 627 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
622 | 628 | HAVE_SETENV = @HAVE_SETENV@ |
623 | 629 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
630 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
624 | 631 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
625 | 632 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
626 | 633 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
635 | 642 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
636 | 643 | HAVE_STRSEP = @HAVE_STRSEP@ |
637 | 644 | HAVE_STRTOD = @HAVE_STRTOD@ |
645 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
638 | 646 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
639 | 647 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
640 | 648 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
713 | 721 | LIBINTL = @LIBINTL@ |
714 | 722 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
715 | 723 | LIBOBJS = @LIBOBJS@ |
716 | LIBPTH = @LIBPTH@ | |
717 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
718 | 724 | LIBS = @LIBS@ |
719 | 725 | LIBTHREAD = @LIBTHREAD@ |
720 | 726 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
730 | 736 | LTLIBINTL = @LTLIBINTL@ |
731 | 737 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
732 | 738 | LTLIBOBJS = @LTLIBOBJS@ |
733 | LTLIBPTH = @LTLIBPTH@ | |
734 | 739 | LTLIBTHREAD = @LTLIBTHREAD@ |
735 | 740 | MAKEINFO = @MAKEINFO@ |
736 | 741 | MKDIR_P = @MKDIR_P@ |
827 | 832 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
828 | 833 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
829 | 834 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
835 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
830 | 836 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
831 | 837 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
832 | 838 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
860 | 866 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
861 | 867 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
862 | 868 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
869 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
863 | 870 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
864 | 871 | REPLACE_READ = @REPLACE_READ@ |
865 | 872 | REPLACE_READLINK = @REPLACE_READLINK@ |
872 | 879 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
873 | 880 | REPLACE_SETENV = @REPLACE_SETENV@ |
874 | 881 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
882 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
875 | 883 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
876 | 884 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
877 | 885 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
890 | 898 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
891 | 899 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
892 | 900 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
901 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
893 | 902 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
894 | 903 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
895 | 904 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
275 | 275 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
276 | 276 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
277 | 277 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
278 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
278 | 279 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
279 | 280 | GNULIB_DUP = @GNULIB_DUP@ |
280 | 281 | GNULIB_DUP2 = @GNULIB_DUP2@ |
430 | 431 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
431 | 432 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
432 | 433 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
434 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
433 | 435 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
434 | 436 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
435 | 437 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
497 | 499 | GNULIB_WRITE = @GNULIB_WRITE@ |
498 | 500 | GNULIB__EXIT = @GNULIB__EXIT@ |
499 | 501 | GREP = @GREP@ |
502 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
500 | 503 | HAVE_ATOLL = @HAVE_ATOLL@ |
501 | 504 | HAVE_BTOWC = @HAVE_BTOWC@ |
502 | 505 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
503 | 506 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
504 | 507 | HAVE_CHOWN = @HAVE_CHOWN@ |
508 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
505 | 509 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
506 | 510 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
507 | 511 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
567 | 571 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
568 | 572 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
569 | 573 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
574 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
570 | 575 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
571 | 576 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
572 | 577 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
587 | 592 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
588 | 593 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
589 | 594 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
595 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
590 | 596 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
591 | 597 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
592 | 598 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
621 | 627 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
622 | 628 | HAVE_SETENV = @HAVE_SETENV@ |
623 | 629 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
630 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
624 | 631 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
625 | 632 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
626 | 633 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
635 | 642 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
636 | 643 | HAVE_STRSEP = @HAVE_STRSEP@ |
637 | 644 | HAVE_STRTOD = @HAVE_STRTOD@ |
645 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
638 | 646 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
639 | 647 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
640 | 648 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
713 | 721 | LIBINTL = @LIBINTL@ |
714 | 722 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
715 | 723 | LIBOBJS = @LIBOBJS@ |
716 | LIBPTH = @LIBPTH@ | |
717 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
718 | 724 | LIBS = @LIBS@ |
719 | 725 | LIBTHREAD = @LIBTHREAD@ |
720 | 726 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
730 | 736 | LTLIBINTL = @LTLIBINTL@ |
731 | 737 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
732 | 738 | LTLIBOBJS = @LTLIBOBJS@ |
733 | LTLIBPTH = @LTLIBPTH@ | |
734 | 739 | LTLIBTHREAD = @LTLIBTHREAD@ |
735 | 740 | MAKEINFO = @MAKEINFO@ |
736 | 741 | MKDIR_P = @MKDIR_P@ |
827 | 832 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
828 | 833 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
829 | 834 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
835 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
830 | 836 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
831 | 837 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
832 | 838 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
860 | 866 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
861 | 867 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
862 | 868 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
869 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
863 | 870 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
864 | 871 | REPLACE_READ = @REPLACE_READ@ |
865 | 872 | REPLACE_READLINK = @REPLACE_READLINK@ |
872 | 879 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
873 | 880 | REPLACE_SETENV = @REPLACE_SETENV@ |
874 | 881 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
882 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
875 | 883 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
876 | 884 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
877 | 885 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
890 | 898 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
891 | 899 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
892 | 900 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
901 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
893 | 902 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
894 | 903 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
895 | 904 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
491 | 491 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
492 | 492 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
493 | 493 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
494 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
494 | 495 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
495 | 496 | GNULIB_DUP = @GNULIB_DUP@ |
496 | 497 | GNULIB_DUP2 = @GNULIB_DUP2@ |
646 | 647 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
647 | 648 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
648 | 649 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
650 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
649 | 651 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
650 | 652 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
651 | 653 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
713 | 715 | GNULIB_WRITE = @GNULIB_WRITE@ |
714 | 716 | GNULIB__EXIT = @GNULIB__EXIT@ |
715 | 717 | GREP = @GREP@ |
718 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
716 | 719 | HAVE_ATOLL = @HAVE_ATOLL@ |
717 | 720 | HAVE_BTOWC = @HAVE_BTOWC@ |
718 | 721 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
719 | 722 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
720 | 723 | HAVE_CHOWN = @HAVE_CHOWN@ |
724 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
721 | 725 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
722 | 726 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
723 | 727 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
783 | 787 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
784 | 788 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
785 | 789 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
790 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
786 | 791 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
787 | 792 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
788 | 793 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
803 | 808 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
804 | 809 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
805 | 810 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
811 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
806 | 812 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
807 | 813 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
808 | 814 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
837 | 843 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
838 | 844 | HAVE_SETENV = @HAVE_SETENV@ |
839 | 845 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
846 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
840 | 847 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
841 | 848 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
842 | 849 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
851 | 858 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
852 | 859 | HAVE_STRSEP = @HAVE_STRSEP@ |
853 | 860 | HAVE_STRTOD = @HAVE_STRTOD@ |
861 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
854 | 862 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
855 | 863 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
856 | 864 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
929 | 937 | LIBINTL = @LIBINTL@ |
930 | 938 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
931 | 939 | LIBOBJS = @LIBOBJS@ |
932 | LIBPTH = @LIBPTH@ | |
933 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
934 | 940 | LIBS = @LIBS@ |
935 | 941 | LIBTHREAD = @LIBTHREAD@ |
936 | 942 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
946 | 952 | LTLIBINTL = @LTLIBINTL@ |
947 | 953 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
948 | 954 | LTLIBOBJS = @LTLIBOBJS@ |
949 | LTLIBPTH = @LTLIBPTH@ | |
950 | 955 | LTLIBTHREAD = @LTLIBTHREAD@ |
951 | 956 | MAKEINFO = @MAKEINFO@ |
952 | 957 | MKDIR_P = @MKDIR_P@ |
1043 | 1048 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1044 | 1049 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1045 | 1050 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1051 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1046 | 1052 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1047 | 1053 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1048 | 1054 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1076 | 1082 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1077 | 1083 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1078 | 1084 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1085 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1079 | 1086 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1080 | 1087 | REPLACE_READ = @REPLACE_READ@ |
1081 | 1088 | REPLACE_READLINK = @REPLACE_READLINK@ |
1088 | 1095 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1089 | 1096 | REPLACE_SETENV = @REPLACE_SETENV@ |
1090 | 1097 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1098 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1091 | 1099 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1092 | 1100 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1093 | 1101 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1106 | 1114 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1107 | 1115 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1108 | 1116 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1117 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1109 | 1118 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1110 | 1119 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1111 | 1120 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
275 | 275 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
276 | 276 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
277 | 277 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
278 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
278 | 279 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
279 | 280 | GNULIB_DUP = @GNULIB_DUP@ |
280 | 281 | GNULIB_DUP2 = @GNULIB_DUP2@ |
430 | 431 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
431 | 432 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
432 | 433 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
434 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
433 | 435 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
434 | 436 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
435 | 437 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
497 | 499 | GNULIB_WRITE = @GNULIB_WRITE@ |
498 | 500 | GNULIB__EXIT = @GNULIB__EXIT@ |
499 | 501 | GREP = @GREP@ |
502 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
500 | 503 | HAVE_ATOLL = @HAVE_ATOLL@ |
501 | 504 | HAVE_BTOWC = @HAVE_BTOWC@ |
502 | 505 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
503 | 506 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
504 | 507 | HAVE_CHOWN = @HAVE_CHOWN@ |
508 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
505 | 509 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
506 | 510 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
507 | 511 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
567 | 571 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
568 | 572 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
569 | 573 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
574 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
570 | 575 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
571 | 576 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
572 | 577 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
587 | 592 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
588 | 593 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
589 | 594 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
595 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
590 | 596 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
591 | 597 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
592 | 598 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
621 | 627 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
622 | 628 | HAVE_SETENV = @HAVE_SETENV@ |
623 | 629 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
630 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
624 | 631 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
625 | 632 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
626 | 633 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
635 | 642 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
636 | 643 | HAVE_STRSEP = @HAVE_STRSEP@ |
637 | 644 | HAVE_STRTOD = @HAVE_STRTOD@ |
645 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
638 | 646 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
639 | 647 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
640 | 648 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
713 | 721 | LIBINTL = @LIBINTL@ |
714 | 722 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
715 | 723 | LIBOBJS = @LIBOBJS@ |
716 | LIBPTH = @LIBPTH@ | |
717 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
718 | 724 | LIBS = @LIBS@ |
719 | 725 | LIBTHREAD = @LIBTHREAD@ |
720 | 726 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
730 | 736 | LTLIBINTL = @LTLIBINTL@ |
731 | 737 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
732 | 738 | LTLIBOBJS = @LTLIBOBJS@ |
733 | LTLIBPTH = @LTLIBPTH@ | |
734 | 739 | LTLIBTHREAD = @LTLIBTHREAD@ |
735 | 740 | MAKEINFO = @MAKEINFO@ |
736 | 741 | MKDIR_P = @MKDIR_P@ |
827 | 832 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
828 | 833 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
829 | 834 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
835 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
830 | 836 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
831 | 837 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
832 | 838 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
860 | 866 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
861 | 867 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
862 | 868 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
869 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
863 | 870 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
864 | 871 | REPLACE_READ = @REPLACE_READ@ |
865 | 872 | REPLACE_READLINK = @REPLACE_READLINK@ |
872 | 879 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
873 | 880 | REPLACE_SETENV = @REPLACE_SETENV@ |
874 | 881 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
882 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
875 | 883 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
876 | 884 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
877 | 885 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
890 | 898 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
891 | 899 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
892 | 900 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
901 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
893 | 902 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
894 | 903 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
895 | 904 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
277 | 277 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
278 | 278 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
279 | 279 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
280 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
280 | 281 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
281 | 282 | GNULIB_DUP = @GNULIB_DUP@ |
282 | 283 | GNULIB_DUP2 = @GNULIB_DUP2@ |
432 | 433 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
433 | 434 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
434 | 435 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
436 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
435 | 437 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
436 | 438 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
437 | 439 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
499 | 501 | GNULIB_WRITE = @GNULIB_WRITE@ |
500 | 502 | GNULIB__EXIT = @GNULIB__EXIT@ |
501 | 503 | GREP = @GREP@ |
504 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
502 | 505 | HAVE_ATOLL = @HAVE_ATOLL@ |
503 | 506 | HAVE_BTOWC = @HAVE_BTOWC@ |
504 | 507 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
505 | 508 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
506 | 509 | HAVE_CHOWN = @HAVE_CHOWN@ |
510 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
507 | 511 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
508 | 512 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
509 | 513 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
569 | 573 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
570 | 574 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
571 | 575 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
576 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
572 | 577 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
573 | 578 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
574 | 579 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
589 | 594 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
590 | 595 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
591 | 596 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
597 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
592 | 598 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
593 | 599 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
594 | 600 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
623 | 629 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
624 | 630 | HAVE_SETENV = @HAVE_SETENV@ |
625 | 631 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
632 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
626 | 633 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
627 | 634 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
628 | 635 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
637 | 644 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
638 | 645 | HAVE_STRSEP = @HAVE_STRSEP@ |
639 | 646 | HAVE_STRTOD = @HAVE_STRTOD@ |
647 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
640 | 648 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
641 | 649 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
642 | 650 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
715 | 723 | LIBINTL = @LIBINTL@ |
716 | 724 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
717 | 725 | LIBOBJS = @LIBOBJS@ |
718 | LIBPTH = @LIBPTH@ | |
719 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
720 | 726 | LIBS = @LIBS@ |
721 | 727 | LIBTHREAD = @LIBTHREAD@ |
722 | 728 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
732 | 738 | LTLIBINTL = @LTLIBINTL@ |
733 | 739 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
734 | 740 | LTLIBOBJS = @LTLIBOBJS@ |
735 | LTLIBPTH = @LTLIBPTH@ | |
736 | 741 | LTLIBTHREAD = @LTLIBTHREAD@ |
737 | 742 | MAKEINFO = @MAKEINFO@ |
738 | 743 | MKDIR_P = @MKDIR_P@ |
829 | 834 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
830 | 835 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
831 | 836 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
837 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
832 | 838 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
833 | 839 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
834 | 840 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
862 | 868 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
863 | 869 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
864 | 870 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
871 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
865 | 872 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
866 | 873 | REPLACE_READ = @REPLACE_READ@ |
867 | 874 | REPLACE_READLINK = @REPLACE_READLINK@ |
874 | 881 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
875 | 882 | REPLACE_SETENV = @REPLACE_SETENV@ |
876 | 883 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
884 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
877 | 885 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
878 | 886 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
879 | 887 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
892 | 900 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
893 | 901 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
894 | 902 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
903 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
895 | 904 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
896 | 905 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
897 | 906 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
275 | 275 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
276 | 276 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
277 | 277 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
278 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
278 | 279 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
279 | 280 | GNULIB_DUP = @GNULIB_DUP@ |
280 | 281 | GNULIB_DUP2 = @GNULIB_DUP2@ |
430 | 431 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
431 | 432 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
432 | 433 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
434 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
433 | 435 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
434 | 436 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
435 | 437 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
497 | 499 | GNULIB_WRITE = @GNULIB_WRITE@ |
498 | 500 | GNULIB__EXIT = @GNULIB__EXIT@ |
499 | 501 | GREP = @GREP@ |
502 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
500 | 503 | HAVE_ATOLL = @HAVE_ATOLL@ |
501 | 504 | HAVE_BTOWC = @HAVE_BTOWC@ |
502 | 505 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
503 | 506 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
504 | 507 | HAVE_CHOWN = @HAVE_CHOWN@ |
508 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
505 | 509 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
506 | 510 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
507 | 511 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
567 | 571 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
568 | 572 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
569 | 573 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
574 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
570 | 575 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
571 | 576 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
572 | 577 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
587 | 592 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
588 | 593 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
589 | 594 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
595 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
590 | 596 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
591 | 597 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
592 | 598 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
621 | 627 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
622 | 628 | HAVE_SETENV = @HAVE_SETENV@ |
623 | 629 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
630 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
624 | 631 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
625 | 632 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
626 | 633 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
635 | 642 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
636 | 643 | HAVE_STRSEP = @HAVE_STRSEP@ |
637 | 644 | HAVE_STRTOD = @HAVE_STRTOD@ |
645 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
638 | 646 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
639 | 647 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
640 | 648 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
713 | 721 | LIBINTL = @LIBINTL@ |
714 | 722 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
715 | 723 | LIBOBJS = @LIBOBJS@ |
716 | LIBPTH = @LIBPTH@ | |
717 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
718 | 724 | LIBS = @LIBS@ |
719 | 725 | LIBTHREAD = @LIBTHREAD@ |
720 | 726 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
730 | 736 | LTLIBINTL = @LTLIBINTL@ |
731 | 737 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
732 | 738 | LTLIBOBJS = @LTLIBOBJS@ |
733 | LTLIBPTH = @LTLIBPTH@ | |
734 | 739 | LTLIBTHREAD = @LTLIBTHREAD@ |
735 | 740 | MAKEINFO = @MAKEINFO@ |
736 | 741 | MKDIR_P = @MKDIR_P@ |
827 | 832 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
828 | 833 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
829 | 834 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
835 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
830 | 836 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
831 | 837 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
832 | 838 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
860 | 866 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
861 | 867 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
862 | 868 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
869 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
863 | 870 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
864 | 871 | REPLACE_READ = @REPLACE_READ@ |
865 | 872 | REPLACE_READLINK = @REPLACE_READLINK@ |
872 | 879 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
873 | 880 | REPLACE_SETENV = @REPLACE_SETENV@ |
874 | 881 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
882 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
875 | 883 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
876 | 884 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
877 | 885 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
890 | 898 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
891 | 899 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
892 | 900 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
901 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
893 | 902 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
894 | 903 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
895 | 904 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |
500 | 500 | GNULIB_CHDIR = @GNULIB_CHDIR@ |
501 | 501 | GNULIB_CHOWN = @GNULIB_CHOWN@ |
502 | 502 | GNULIB_CLOSE = @GNULIB_CLOSE@ |
503 | GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ | |
503 | 504 | GNULIB_DPRINTF = @GNULIB_DPRINTF@ |
504 | 505 | GNULIB_DUP = @GNULIB_DUP@ |
505 | 506 | GNULIB_DUP2 = @GNULIB_DUP2@ |
655 | 656 | GNULIB_STRSTR = @GNULIB_STRSTR@ |
656 | 657 | GNULIB_STRTOD = @GNULIB_STRTOD@ |
657 | 658 | GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ |
659 | GNULIB_STRTOLD = @GNULIB_STRTOLD@ | |
658 | 660 | GNULIB_STRTOLL = @GNULIB_STRTOLL@ |
659 | 661 | GNULIB_STRTOULL = @GNULIB_STRTOULL@ |
660 | 662 | GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ |
722 | 724 | GNULIB_WRITE = @GNULIB_WRITE@ |
723 | 725 | GNULIB__EXIT = @GNULIB__EXIT@ |
724 | 726 | GREP = @GREP@ |
727 | HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ | |
725 | 728 | HAVE_ATOLL = @HAVE_ATOLL@ |
726 | 729 | HAVE_BTOWC = @HAVE_BTOWC@ |
727 | 730 | HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ |
728 | 731 | HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ |
729 | 732 | HAVE_CHOWN = @HAVE_CHOWN@ |
733 | HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ | |
730 | 734 | HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ |
731 | 735 | HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ |
732 | 736 | HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ |
792 | 796 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
793 | 797 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
794 | 798 | HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ |
799 | HAVE_INITSTATE = @HAVE_INITSTATE@ | |
795 | 800 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ |
796 | 801 | HAVE_ISWBLANK = @HAVE_ISWBLANK@ |
797 | 802 | HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ |
812 | 817 | HAVE_MBSLEN = @HAVE_MBSLEN@ |
813 | 818 | HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ |
814 | 819 | HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ |
820 | HAVE_MBTOWC = @HAVE_MBTOWC@ | |
815 | 821 | HAVE_MEMCHR = @HAVE_MEMCHR@ |
816 | 822 | HAVE_MEMPCPY = @HAVE_MEMPCPY@ |
817 | 823 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
846 | 852 | HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ |
847 | 853 | HAVE_SETENV = @HAVE_SETENV@ |
848 | 854 | HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ |
855 | HAVE_SETSTATE = @HAVE_SETSTATE@ | |
849 | 856 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ |
850 | 857 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ |
851 | 858 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ |
860 | 867 | HAVE_STRPBRK = @HAVE_STRPBRK@ |
861 | 868 | HAVE_STRSEP = @HAVE_STRSEP@ |
862 | 869 | HAVE_STRTOD = @HAVE_STRTOD@ |
870 | HAVE_STRTOLD = @HAVE_STRTOLD@ | |
863 | 871 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
864 | 872 | HAVE_STRTOULL = @HAVE_STRTOULL@ |
865 | 873 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
938 | 946 | LIBINTL = @LIBINTL@ |
939 | 947 | LIBMULTITHREAD = @LIBMULTITHREAD@ |
940 | 948 | LIBOBJS = @LIBOBJS@ |
941 | LIBPTH = @LIBPTH@ | |
942 | LIBPTH_PREFIX = @LIBPTH_PREFIX@ | |
943 | 949 | LIBS = @LIBS@ |
944 | 950 | LIBTHREAD = @LIBTHREAD@ |
945 | 951 | LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ |
955 | 961 | LTLIBINTL = @LTLIBINTL@ |
956 | 962 | LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ |
957 | 963 | LTLIBOBJS = @LTLIBOBJS@ |
958 | LTLIBPTH = @LTLIBPTH@ | |
959 | 964 | LTLIBTHREAD = @LTLIBTHREAD@ |
960 | 965 | MAKEINFO = @MAKEINFO@ |
961 | 966 | MKDIR_P = @MKDIR_P@ |
1052 | 1057 | REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ |
1053 | 1058 | REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ |
1054 | 1059 | REPLACE_GETPASS = @REPLACE_GETPASS@ |
1060 | REPLACE_INITSTATE = @REPLACE_INITSTATE@ | |
1055 | 1061 | REPLACE_ISATTY = @REPLACE_ISATTY@ |
1056 | 1062 | REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ |
1057 | 1063 | REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ |
1085 | 1091 | REPLACE_PUTENV = @REPLACE_PUTENV@ |
1086 | 1092 | REPLACE_PWRITE = @REPLACE_PWRITE@ |
1087 | 1093 | REPLACE_QSORT_R = @REPLACE_QSORT_R@ |
1094 | REPLACE_RANDOM = @REPLACE_RANDOM@ | |
1088 | 1095 | REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ |
1089 | 1096 | REPLACE_READ = @REPLACE_READ@ |
1090 | 1097 | REPLACE_READLINK = @REPLACE_READLINK@ |
1097 | 1104 | REPLACE_RMDIR = @REPLACE_RMDIR@ |
1098 | 1105 | REPLACE_SETENV = @REPLACE_SETENV@ |
1099 | 1106 | REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ |
1107 | REPLACE_SETSTATE = @REPLACE_SETSTATE@ | |
1100 | 1108 | REPLACE_SLEEP = @REPLACE_SLEEP@ |
1101 | 1109 | REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ |
1102 | 1110 | REPLACE_SPRINTF = @REPLACE_SPRINTF@ |
1115 | 1123 | REPLACE_STRSTR = @REPLACE_STRSTR@ |
1116 | 1124 | REPLACE_STRTOD = @REPLACE_STRTOD@ |
1117 | 1125 | REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ |
1126 | REPLACE_STRTOLD = @REPLACE_STRTOLD@ | |
1118 | 1127 | REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ |
1119 | 1128 | REPLACE_SYMLINK = @REPLACE_SYMLINK@ |
1120 | 1129 | REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ |