diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-06-08 17:52:28 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2024-01-01 18:23:28 -0500 |
commit | e11ccde12b191297c53c6e7a3ec250143c3c7c1f (patch) | |
tree | cdbe7dbc69ba00d13416ed4b00539a5b937c08fb | |
parent | 1b89e2b72052e60fc7a6c0301a67070accc714e1 (diff) | |
download | gdb-e11ccde12b191297c53c6e7a3ec250143c3c7c1f.zip gdb-e11ccde12b191297c53c6e7a3ec250143c3c7c1f.tar.gz gdb-e11ccde12b191297c53c6e7a3ec250143c3c7c1f.tar.bz2 |
gnulib: import nonblocking module
This provides a portable API for managing O_NONBLOCK settings.
The sim will use this to replace its own incomplete shims.
-rw-r--r-- | gnulib/Makefile.in | 12 | ||||
-rw-r--r-- | gnulib/aclocal.m4 | 4 | ||||
-rw-r--r-- | gnulib/config.in | 20 | ||||
-rwxr-xr-x | gnulib/configure | 435 | ||||
-rw-r--r-- | gnulib/import/Makefile.am | 51 | ||||
-rw-r--r-- | gnulib/import/Makefile.in | 404 | ||||
-rw-r--r-- | gnulib/import/ioctl.c | 92 | ||||
-rw-r--r-- | gnulib/import/m4/asm-underscore.m4 | 83 | ||||
-rw-r--r-- | gnulib/import/m4/gnulib-cache.m4 | 2 | ||||
-rw-r--r-- | gnulib/import/m4/gnulib-comp.m4 | 29 | ||||
-rw-r--r-- | gnulib/import/m4/ioctl.m4 | 44 | ||||
-rw-r--r-- | gnulib/import/m4/nonblocking.m4 | 29 | ||||
-rw-r--r-- | gnulib/import/m4/sys_ioctl_h.m4 | 79 | ||||
-rw-r--r-- | gnulib/import/nonblocking.c | 163 | ||||
-rw-r--r-- | gnulib/import/nonblocking.h | 62 | ||||
-rw-r--r-- | gnulib/import/sys_ioctl.in.h | 79 | ||||
-rwxr-xr-x | gnulib/update-gnulib.sh | 1 |
17 files changed, 1409 insertions, 180 deletions
diff --git a/gnulib/Makefile.in b/gnulib/Makefile.in index 02886fe..b1946cb 100644 --- a/gnulib/Makefile.in +++ b/gnulib/Makefile.in @@ -112,6 +112,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/absolute-header.m4 \ $(top_srcdir)/import/m4/alloca.m4 \ $(top_srcdir)/import/m4/arpa_inet_h.m4 \ + $(top_srcdir)/import/m4/asm-underscore.m4 \ $(top_srcdir)/import/m4/btowc.m4 \ $(top_srcdir)/import/m4/builtin-expect.m4 \ $(top_srcdir)/import/m4/canonicalize.m4 \ @@ -171,6 +172,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/include_next.m4 \ $(top_srcdir)/import/m4/inet_ntop.m4 \ $(top_srcdir)/import/m4/inttypes.m4 \ + $(top_srcdir)/import/m4/ioctl.m4 \ $(top_srcdir)/import/m4/isblank.m4 \ $(top_srcdir)/import/m4/isnand.m4 \ $(top_srcdir)/import/m4/isnanl.m4 \ @@ -207,6 +209,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/netdb_h.m4 \ $(top_srcdir)/import/m4/netinet_in_h.m4 \ $(top_srcdir)/import/m4/nocrash.m4 \ + $(top_srcdir)/import/m4/nonblocking.m4 \ $(top_srcdir)/import/m4/off_t.m4 \ $(top_srcdir)/import/m4/open-cloexec.m4 \ $(top_srcdir)/import/m4/open-slash.m4 \ @@ -252,6 +255,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/strnlen.m4 \ $(top_srcdir)/import/m4/strstr.m4 \ $(top_srcdir)/import/m4/strtok_r.m4 \ + $(top_srcdir)/import/m4/sys_ioctl_h.m4 \ $(top_srcdir)/import/m4/sys_random_h.m4 \ $(top_srcdir)/import/m4/sys_select_h.m4 \ $(top_srcdir)/import/m4/sys_socket_h.m4 \ @@ -357,6 +361,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ +ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -546,6 +551,7 @@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ +GL_GNULIB_IOCTL = @GL_GNULIB_IOCTL@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ @@ -1183,6 +1189,7 @@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ @@ -1320,6 +1327,7 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ @@ -1352,6 +1360,7 @@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ @@ -1486,6 +1495,7 @@ REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ @@ -1664,6 +1674,8 @@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ +SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ diff --git a/gnulib/aclocal.m4 b/gnulib/aclocal.m4 index c7f866e..7ba3475 100644 --- a/gnulib/aclocal.m4 +++ b/gnulib/aclocal.m4 @@ -1174,6 +1174,7 @@ m4_include([import/m4/__inline.m4]) m4_include([import/m4/absolute-header.m4]) m4_include([import/m4/alloca.m4]) m4_include([import/m4/arpa_inet_h.m4]) +m4_include([import/m4/asm-underscore.m4]) m4_include([import/m4/btowc.m4]) m4_include([import/m4/builtin-expect.m4]) m4_include([import/m4/canonicalize.m4]) @@ -1234,6 +1235,7 @@ m4_include([import/m4/gnulib-comp.m4]) m4_include([import/m4/include_next.m4]) m4_include([import/m4/inet_ntop.m4]) m4_include([import/m4/inttypes.m4]) +m4_include([import/m4/ioctl.m4]) m4_include([import/m4/isblank.m4]) m4_include([import/m4/isnand.m4]) m4_include([import/m4/isnanl.m4]) @@ -1270,6 +1272,7 @@ m4_include([import/m4/multiarch.m4]) m4_include([import/m4/netdb_h.m4]) m4_include([import/m4/netinet_in_h.m4]) m4_include([import/m4/nocrash.m4]) +m4_include([import/m4/nonblocking.m4]) m4_include([import/m4/off_t.m4]) m4_include([import/m4/open-cloexec.m4]) m4_include([import/m4/open-slash.m4]) @@ -1315,6 +1318,7 @@ m4_include([import/m4/strings_h.m4]) m4_include([import/m4/strnlen.m4]) m4_include([import/m4/strstr.m4]) m4_include([import/m4/strtok_r.m4]) +m4_include([import/m4/sys_ioctl_h.m4]) m4_include([import/m4/sys_random_h.m4]) m4_include([import/m4/sys_select_h.m4]) m4_include([import/m4/sys_socket_h.m4]) diff --git a/gnulib/config.in b/gnulib/config.in index f70c6a5..37ad898 100644 --- a/gnulib/config.in +++ b/gnulib/config.in @@ -124,6 +124,10 @@ #undef GNULIB_MSVC_NOTHROW /* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module nonblocking shall be considered present. */ +#undef GNULIB_NONBLOCKING + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module openat shall be considered present. */ #undef GNULIB_OPENAT @@ -271,6 +275,9 @@ /* Define to 1 when the gnulib module glob should be tested. */ #undef GNULIB_TEST_GLOB +/* Define to 1 when the gnulib module ioctl should be tested. */ +#undef GNULIB_TEST_IOCTL + /* Define to 1 when the gnulib module listen should be tested. */ #undef GNULIB_TEST_LISTEN @@ -313,6 +320,9 @@ /* Define to 1 when the gnulib module mkostemp should be tested. */ #undef GNULIB_TEST_MKOSTEMP +/* Define to 1 when the gnulib module nonblocking should be tested. */ +#undef GNULIB_TEST_NONBLOCKING + /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN @@ -707,6 +717,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `ioctl' function. */ +#undef HAVE_IOCTL + /* Define to 1 if <sys/socket.h> defines AF_INET. */ #undef HAVE_IPV4 @@ -953,6 +966,9 @@ /* Define to 1 if you have the <sys/inttypes.h> header file. */ #undef HAVE_SYS_INTTYPES_H +/* Define to 1 if you have the <sys/ioctl.h> header file. */ +#undef HAVE_SYS_IOCTL_H + /* Define to 1 if you have the <sys/mman.h> header file. */ #undef HAVE_SYS_MMAN_H @@ -1336,6 +1352,10 @@ timespec. */ #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC +/* Define to the prefix of C symbols at the assembler and linker level, either + an underscore or empty. */ +#undef USER_LABEL_PREFIX + /* Define if the combination of the ISO C and POSIX multithreading APIs can be used. */ #undef USE_ISOC_AND_POSIX_THREADS diff --git a/gnulib/configure b/gnulib/configure index cb2a113..9626c42 100755 --- a/gnulib/configure +++ b/gnulib/configure @@ -769,6 +769,9 @@ NEXT_SYS_TYPES_H HAVE_SYS_RANDOM_H NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H NEXT_SYS_RANDOM_H +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H +NEXT_SYS_IOCTL_H +HAVE_SYS_IOCTL_H GL_COND_OBJ_STRTOK_R_FALSE GL_COND_OBJ_STRTOK_R_TRUE GL_COND_OBJ_STRNLEN_FALSE @@ -867,6 +870,7 @@ GL_COND_OBJ_OPENAT_FALSE GL_COND_OBJ_OPENAT_TRUE GL_COND_OBJ_OPEN_FALSE GL_COND_OBJ_OPEN_TRUE +ASM_SYMBOL_PREFIX GL_GENERATE_NETINET_IN_H_FALSE GL_GENERATE_NETINET_IN_H_TRUE NETINET_IN_H @@ -1038,6 +1042,9 @@ GL_GENERATE_LIMITS_H_TRUE LIMITS_H GL_COND_OBJ_ISBLANK_FALSE GL_COND_OBJ_ISBLANK_TRUE +GL_GNULIB_IOCTL +GL_COND_OBJ_IOCTL_FALSE +GL_COND_OBJ_IOCTL_TRUE GL_GNULIB_STRTOUMAX GL_GNULIB_STRTOIMAX GL_GNULIB_IMAXDIV @@ -2032,6 +2039,9 @@ GL_GNULIB_SOCKET GL_COND_OBJ_ACCEPT_FALSE GL_COND_OBJ_ACCEPT_TRUE HAVE_WINSOCK2_H +REPLACE_IOCTL +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS +SYS_IOCTL_H_HAVE_WINSOCK2_H UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H UNISTD_H_HAVE_SYS_RANDOM_H @@ -3997,6 +4007,7 @@ as_fn_append ac_func_list " __xpg_strerror_r" as_fn_append ac_func_list " catgets" as_fn_append ac_func_list " snprintf" as_fn_append ac_header_list " strings.h" +as_fn_append ac_header_list " sys/ioctl.h" as_fn_append ac_header_list " sys/random.h" as_fn_append ac_header_list " sys/uio.h" as_fn_append ac_header_list " sys/wait.h" @@ -7103,6 +7114,7 @@ fi # Code from module intprops: # Code from module inttypes: # Code from module inttypes-incomplete: + # Code from module ioctl: # Code from module isblank: # Code from module isnand-nolibm: # Code from module isnanl-nolibm: @@ -7138,6 +7150,7 @@ fi # Code from module netdb: # Code from module netinet_in: # Code from module nocrash: + # Code from module nonblocking: # Code from module open: # Code from module openat: # Code from module openat-die: @@ -7191,6 +7204,7 @@ fi # Code from module strstr: # Code from module strstr-simple: # Code from module strtok_r: + # Code from module sys_ioctl: # Code from module sys_random: # Code from module sys_select: # Code from module sys_socket: @@ -7527,6 +7541,12 @@ $as_echo "$gl_cv_source_line_length_unlimited" >&6; } UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + + SYS_IOCTL_H_HAVE_WINSOCK2_H=0; + SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + + REPLACE_IOCTL=0; + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : @@ -13813,8 +13833,8 @@ rm -f core conftest.err conftest.$ac_objext \ LIBS=$save_LIBS test $gl_pthread_api = yes && break done - echo "$as_me:13816: gl_pthread_api=$gl_pthread_api" >&5 - echo "$as_me:13817: LIBPTHREAD=$LIBPTHREAD" >&5 + echo "$as_me:13836: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:13837: LIBPTHREAD=$LIBPTHREAD" >&5 gl_pthread_in_glibc=no # On Linux with glibc >= 2.34, libc contains the fully functional @@ -13839,7 +13859,7 @@ rm -f conftest* ;; esac - echo "$as_me:13842: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + echo "$as_me:13862: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) @@ -13993,7 +14013,7 @@ fi fi fi - echo "$as_me:13996: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + echo "$as_me:14016: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 $as_echo_n "checking whether POSIX threads API is available... " >&6; } @@ -15854,6 +15874,12 @@ $as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } + GL_GNULIB_IOCTL=0 + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5 $as_echo_n "checking where to find the exponent in a 'double'... " >&6; } @@ -17070,8 +17096,8 @@ rm -f core conftest.err conftest.$ac_objext \ LIBS=$save_LIBS test $gl_pthread_api = yes && break done - echo "$as_me:17073: gl_pthread_api=$gl_pthread_api" >&5 - echo "$as_me:17074: LIBPTHREAD=$LIBPTHREAD" >&5 + echo "$as_me:17099: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:17100: LIBPTHREAD=$LIBPTHREAD" >&5 gl_pthread_in_glibc=no # On Linux with glibc >= 2.34, libc contains the fully functional @@ -17096,7 +17122,7 @@ rm -f conftest* ;; esac - echo "$as_me:17099: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + echo "$as_me:17125: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) @@ -17250,7 +17276,7 @@ fi fi fi - echo "$as_me:17253: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + echo "$as_me:17279: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 $as_echo_n "checking whether POSIX threads API is available... " >&6; } @@ -17476,8 +17502,8 @@ rm -f core conftest.err conftest.$ac_objext \ LIBS=$save_LIBS test $gl_pthread_api = yes && break done - echo "$as_me:17479: gl_pthread_api=$gl_pthread_api" >&5 - echo "$as_me:17480: LIBPTHREAD=$LIBPTHREAD" >&5 + echo "$as_me:17505: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:17506: LIBPTHREAD=$LIBPTHREAD" >&5 gl_pthread_in_glibc=no # On Linux with glibc >= 2.34, libc contains the fully functional @@ -17502,7 +17528,7 @@ rm -f conftest* ;; esac - echo "$as_me:17505: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + echo "$as_me:17531: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) @@ -17656,7 +17682,7 @@ fi fi fi - echo "$as_me:17659: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + echo "$as_me:17685: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 $as_echo_n "checking whether POSIX threads API is available... " >&6; } @@ -19377,6 +19403,97 @@ $as_echo "$gl_cv_next_netdb_h" >&6; } + + case "$host_os" in + mingw*) gl_cv_have_nonblocking=no ;; + *) gl_cv_have_nonblocking=yes ;; + esac + case "$host_os" in + mingw*) gl_cv_have_open_O_NONBLOCK=no ;; + *) gl_cv_have_open_O_NONBLOCK=yes ;; + esac + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER +MicrosoftCompiler +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "MicrosoftCompiler" >/dev/null 2>&1; then : + rm -f conftest* + echo 'int dummy;' > conftest.c + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null 2>&1 + if test -f conftest.o; then + gl_asmext='s' + gl_c_asm_opt='-S' + else + gl_asmext='asm' + gl_c_asm_opt='-c -Fa' + fi + rm -f conftest* + +else + gl_asmext='s' + gl_c_asm_opt='-S' + +fi +rm -f conftest* + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C symbols are prefixed with underscore at the linker level" >&5 +$as_echo_n "checking whether C symbols are prefixed with underscore at the linker level... " >&6; } +if ${gl_cv_prog_as_underscore+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat > conftest.c <<EOF +#ifdef __cplusplus +extern "C" int foo (void); +#endif +int foo(void) { return 0; } +EOF + # Look for the assembly language name in the .s file. + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null 2>&1 + if LC_ALL=C $EGREP '(^|[^a-zA-Z0-9_])_foo([^a-zA-Z0-9_]|$)' conftest.$gl_asmext >/dev/null; then + gl_cv_prog_as_underscore=yes + else + gl_cv_prog_as_underscore=no + fi + rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_prog_as_underscore" >&5 +$as_echo "$gl_cv_prog_as_underscore" >&6; } + if test $gl_cv_prog_as_underscore = yes; then + USER_LABEL_PREFIX=_ + else + USER_LABEL_PREFIX= + fi + +cat >>confdefs.h <<_ACEOF +#define USER_LABEL_PREFIX $USER_LABEL_PREFIX +_ACEOF + + ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 $as_echo_n "checking for O_CLOEXEC... " >&6; } if ${gl_cv_macro_O_CLOEXEC+:} false; then : @@ -20310,6 +20427,20 @@ $as_echo "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_READ_FUNCS=1 + fi + + + + + + + + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_WRITE_FUNCS=1 + fi + @@ -20998,6 +21129,127 @@ _ACEOF + if test $ac_cv_header_sys_ioctl_h = yes; then + HAVE_SYS_IOCTL_H=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <sys/ioctl.h> declares ioctl" >&5 +$as_echo_n "checking whether <sys/ioctl.h> declares ioctl... " >&6; } +if ${gl_cv_decl_ioctl_in_sys_ioctl_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/ioctl.h> +int +main () +{ +(void) ioctl; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_decl_ioctl_in_sys_ioctl_h=yes +else + gl_cv_decl_ioctl_in_sys_ioctl_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_ioctl_in_sys_ioctl_h" >&5 +$as_echo "$gl_cv_decl_ioctl_in_sys_ioctl_h" >&6; } + else + HAVE_SYS_IOCTL_H=0 + fi + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/ioctl.h>" >&5 +$as_echo_n "checking absolute name of <sys/ioctl.h>... " >&6; } +if ${gl_cv_next_sys_ioctl_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_sys_ioctl_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/ioctl.h> +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/ioctl.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_ioctl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_ioctl_h + gl_cv_next_sys_ioctl_h='"'$gl_header'"' + else + gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_ioctl_h" >&5 +$as_echo "$gl_cv_next_sys_ioctl_h" >&6; } + fi + NEXT_SYS_IOCTL_H=$gl_cv_next_sys_ioctl_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/ioctl.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_ioctl_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + @@ -27471,6 +27723,97 @@ fi + HAVE_IOCTL=1 + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_IOCTL=0 + else + for ac_func in ioctl +do : + ac_fn_c_check_func "$LINENO" "ioctl" "ac_cv_func_ioctl" +if test "x$ac_cv_func_ioctl" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IOCTL 1 +_ACEOF + +fi +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ioctl with POSIX signature" >&5 +$as_echo_n "checking for ioctl with POSIX signature... " >&6; } +if ${gl_cv_func_ioctl_posix_signature+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/ioctl.h> + /* On some platforms, ioctl() is declared in <unistd.h>. */ + #include <unistd.h> + +int +main () +{ +extern + #ifdef __cplusplus + "C" + #endif + int ioctl (int, int, ...); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_ioctl_posix_signature=yes +else + gl_cv_func_ioctl_posix_signature=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ioctl_posix_signature" >&5 +$as_echo "$gl_cv_func_ioctl_posix_signature" >&6; } + if test $gl_cv_func_ioctl_posix_signature != yes; then + REPLACE_IOCTL=1 + fi + fi + + + if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then + GL_COND_OBJ_IOCTL_TRUE= + GL_COND_OBJ_IOCTL_FALSE='#' +else + GL_COND_OBJ_IOCTL_TRUE='#' + GL_COND_OBJ_IOCTL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_IOCTL_TRUE}" && test -z "${GL_COND_OBJ_IOCTL_FALSE}"; then + GL_COND_OBJ_IOCTL_TRUE='#' + GL_COND_OBJ_IOCTL_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_IOCTL=1 + + + + + +$as_echo "#define GNULIB_TEST_IOCTL 1" >>confdefs.h + + + + + + if test $ac_cv_func_isblank = no; then @@ -31104,6 +31447,54 @@ fi + + + + + + + + + + GL_GNULIB_NONBLOCKING=1 + + + + + +$as_echo "#define GNULIB_TEST_NONBLOCKING 1" >>confdefs.h + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_NONBLOCKING 1 +_ACEOF + + + + + + + + + + GL_GNULIB_STDIO_H_NONBLOCKING=1 + + + + + + + + + GL_GNULIB_UNISTD_H_NONBLOCKING=1 + + + + + case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 @@ -31202,6 +31593,15 @@ $as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h fi + if test $REPLACE_OPEN = 0; then + + + + if test $gl_cv_have_open_O_NONBLOCK != yes; then + REPLACE_OPEN=1 + fi + fi + if test $REPLACE_OPEN = 1; then @@ -32963,6 +33363,10 @@ fi + + + + if test "$ac_cv_header_winsock2_h" = yes; then UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1 SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1 @@ -34962,6 +35366,13 @@ $as_echo "#define GNULIB_TEST_STRTOK_R 1" >>confdefs.h + + + + + + + : diff --git a/gnulib/import/Makefile.am b/gnulib/import/Makefile.am index 80b2bb4..07ef985 100644 --- a/gnulib/import/Makefile.am +++ b/gnulib/import/Makefile.am @@ -63,6 +63,7 @@ # mkdtemp \ # mkostemp \ # netdb \ +# nonblocking \ # pathmax \ # rawmemchr \ # readlink \ @@ -968,6 +969,16 @@ EXTRA_DIST += inttypes.in.h ## end gnulib module inttypes-incomplete +## begin gnulib module ioctl + +if GL_COND_OBJ_IOCTL +libgnu_a_SOURCES += ioctl.c +endif + +EXTRA_DIST += w32sock.h + +## end gnulib module ioctl + ## begin gnulib module isblank if GL_COND_OBJ_ISBLANK @@ -1619,6 +1630,16 @@ EXTRA_DIST += netinet_in.in.h ## end gnulib module netinet_in +## begin gnulib module nonblocking + +libgnu_a_SOURCES += nonblocking.c + +EXTRA_DIST += nonblocking.h stdio-read.c stdio-write.c + +EXTRA_libgnu_a_SOURCES += stdio-read.c stdio-write.c + +## end gnulib module nonblocking + ## begin gnulib module open if GL_COND_OBJ_OPEN @@ -2578,6 +2599,36 @@ endif ## end gnulib module strtok_r +## begin gnulib module sys_ioctl + +BUILT_SOURCES += sys/ioctl.h + +# We need the following in order to create <sys/ioctl.h> when the system +# does not have a complete one. +sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) + $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \ + -e 's/@''GNULIB_IOCTL''@/$(GL_GNULIB_IOCTL)/g' \ + -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ + -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/sys_ioctl.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += sys/ioctl.h sys/ioctl.h-t +MOSTLYCLEANDIRS += sys + +EXTRA_DIST += sys_ioctl.in.h + +## end gnulib module sys_ioctl + ## begin gnulib module sys_random BUILT_SOURCES += sys/random.h diff --git a/gnulib/import/Makefile.in b/gnulib/import/Makefile.in index 1899beb..db5a195 100644 --- a/gnulib/import/Makefile.in +++ b/gnulib/import/Makefile.in @@ -77,6 +77,7 @@ # mkdtemp \ # mkostemp \ # netdb \ +# nonblocking \ # pathmax \ # rawmemchr \ # readlink \ @@ -210,53 +211,54 @@ target_triplet = @target@ @GL_COND_OBJ_GLOB_TRUE@am__append_32 = glob.c globfree.c @GL_COND_OBJ_GLOB_PATTERN_P_TRUE@am__append_33 = glob_pattern_p.c @GL_COND_OBJ_INET_NTOP_TRUE@am__append_34 = inet_ntop.c -@GL_COND_OBJ_ISBLANK_TRUE@am__append_35 = isblank.c -@GL_COND_OBJ_LISTEN_TRUE@am__append_36 = listen.c -@GL_COND_OBJ_LSTAT_TRUE@am__append_37 = lstat.c -@GL_COND_OBJ_MBRTOWC_TRUE@am__append_38 = mbrtowc.c -@GL_COND_OBJ_MBSINIT_TRUE@am__append_39 = mbsinit.c -@GL_COND_OBJ_MBSRTOWCS_TRUE@am__append_40 = mbsrtowcs.c -@GL_COND_OBJ_MBTOWC_TRUE@am__append_41 = mbtowc.c -@GL_COND_OBJ_MEMCHR_TRUE@am__append_42 = memchr.c -@GL_COND_OBJ_MEMPCPY_TRUE@am__append_43 = mempcpy.c -@GL_COND_OBJ_MEMRCHR_TRUE@am__append_44 = memrchr.c -@GL_COND_OBJ_MKDIR_TRUE@am__append_45 = mkdir.c -@GL_COND_OBJ_MKDTEMP_TRUE@am__append_46 = mkdtemp.c -@GL_COND_OBJ_MKOSTEMP_TRUE@am__append_47 = mkostemp.c -@GL_COND_OBJ_MSVC_INVAL_TRUE@am__append_48 = msvc-inval.c -@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__append_49 = msvc-nothrow.c -@GL_COND_OBJ_OPEN_TRUE@am__append_50 = open.c -@GL_COND_OBJ_OPENAT_TRUE@am__append_51 = openat.c -@GL_COND_OBJ_OPENDIR_TRUE@am__append_52 = opendir.c -@GL_COND_OBJ_PIPE_TRUE@am__append_53 = pipe.c -@GL_COND_OBJ_RAWMEMCHR_TRUE@am__append_54 = rawmemchr.c -@GL_COND_OBJ_READDIR_TRUE@am__append_55 = readdir.c -@GL_COND_OBJ_READLINK_TRUE@am__append_56 = readlink.c -@GL_COND_OBJ_RENAME_TRUE@am__append_57 = rename.c -@GL_COND_OBJ_REWINDDIR_TRUE@am__append_58 = rewinddir.c -@GL_COND_OBJ_RMDIR_TRUE@am__append_59 = rmdir.c -@GL_COND_OBJ_SELECT_TRUE@am__append_60 = select.c -@GL_COND_OBJ_SETENV_TRUE@am__append_61 = setenv.c -@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_62 = setlocale-lock.c -@GL_COND_OBJ_SETSOCKOPT_TRUE@am__append_63 = setsockopt.c -@GL_COND_OBJ_SOCKET_TRUE@am__append_64 = socket.c -@GL_COND_OBJ_STAT_TRUE@am__append_65 = stat.c -@GL_COND_OBJ_STDIO_READ_TRUE@am__append_66 = stdio-read.c -@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_67 = stdio-write.c -@GL_COND_OBJ_STRCHRNUL_TRUE@am__append_68 = strchrnul.c -@GL_COND_OBJ_STRDUP_TRUE@am__append_69 = strdup.c -@GL_COND_OBJ_STRERROR_TRUE@am__append_70 = strerror.c -@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_71 = strerror-override.c -@GL_COND_OBJ_STRNLEN_TRUE@am__append_72 = strnlen.c -@GL_COND_OBJ_STRTOK_R_TRUE@am__append_73 = strtok_r.c -@GL_COND_OBJ_TIME_R_TRUE@am__append_74 = time_r.c -@GL_COND_OBJ_UNSETENV_TRUE@am__append_75 = unsetenv.c -@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_76 = windows-mutex.c -@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_77 = windows-once.c -@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_78 = windows-recmutex.c -@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_79 = windows-rwlock.c -@GL_COND_OBJ_WMEMCHR_TRUE@am__append_80 = wmemchr.c -@GL_COND_OBJ_WMEMPCPY_TRUE@am__append_81 = wmempcpy.c +@GL_COND_OBJ_IOCTL_TRUE@am__append_35 = ioctl.c +@GL_COND_OBJ_ISBLANK_TRUE@am__append_36 = isblank.c +@GL_COND_OBJ_LISTEN_TRUE@am__append_37 = listen.c +@GL_COND_OBJ_LSTAT_TRUE@am__append_38 = lstat.c +@GL_COND_OBJ_MBRTOWC_TRUE@am__append_39 = mbrtowc.c +@GL_COND_OBJ_MBSINIT_TRUE@am__append_40 = mbsinit.c +@GL_COND_OBJ_MBSRTOWCS_TRUE@am__append_41 = mbsrtowcs.c +@GL_COND_OBJ_MBTOWC_TRUE@am__append_42 = mbtowc.c +@GL_COND_OBJ_MEMCHR_TRUE@am__append_43 = memchr.c +@GL_COND_OBJ_MEMPCPY_TRUE@am__append_44 = mempcpy.c +@GL_COND_OBJ_MEMRCHR_TRUE@am__append_45 = memrchr.c +@GL_COND_OBJ_MKDIR_TRUE@am__append_46 = mkdir.c +@GL_COND_OBJ_MKDTEMP_TRUE@am__append_47 = mkdtemp.c +@GL_COND_OBJ_MKOSTEMP_TRUE@am__append_48 = mkostemp.c +@GL_COND_OBJ_MSVC_INVAL_TRUE@am__append_49 = msvc-inval.c +@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__append_50 = msvc-nothrow.c +@GL_COND_OBJ_OPEN_TRUE@am__append_51 = open.c +@GL_COND_OBJ_OPENAT_TRUE@am__append_52 = openat.c +@GL_COND_OBJ_OPENDIR_TRUE@am__append_53 = opendir.c +@GL_COND_OBJ_PIPE_TRUE@am__append_54 = pipe.c +@GL_COND_OBJ_RAWMEMCHR_TRUE@am__append_55 = rawmemchr.c +@GL_COND_OBJ_READDIR_TRUE@am__append_56 = readdir.c +@GL_COND_OBJ_READLINK_TRUE@am__append_57 = readlink.c +@GL_COND_OBJ_RENAME_TRUE@am__append_58 = rename.c +@GL_COND_OBJ_REWINDDIR_TRUE@am__append_59 = rewinddir.c +@GL_COND_OBJ_RMDIR_TRUE@am__append_60 = rmdir.c +@GL_COND_OBJ_SELECT_TRUE@am__append_61 = select.c +@GL_COND_OBJ_SETENV_TRUE@am__append_62 = setenv.c +@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_63 = setlocale-lock.c +@GL_COND_OBJ_SETSOCKOPT_TRUE@am__append_64 = setsockopt.c +@GL_COND_OBJ_SOCKET_TRUE@am__append_65 = socket.c +@GL_COND_OBJ_STAT_TRUE@am__append_66 = stat.c +@GL_COND_OBJ_STDIO_READ_TRUE@am__append_67 = stdio-read.c +@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_68 = stdio-write.c +@GL_COND_OBJ_STRCHRNUL_TRUE@am__append_69 = strchrnul.c +@GL_COND_OBJ_STRDUP_TRUE@am__append_70 = strdup.c +@GL_COND_OBJ_STRERROR_TRUE@am__append_71 = strerror.c +@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_72 = strerror-override.c +@GL_COND_OBJ_STRNLEN_TRUE@am__append_73 = strnlen.c +@GL_COND_OBJ_STRTOK_R_TRUE@am__append_74 = strtok_r.c +@GL_COND_OBJ_TIME_R_TRUE@am__append_75 = time_r.c +@GL_COND_OBJ_UNSETENV_TRUE@am__append_76 = unsetenv.c +@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_77 = windows-mutex.c +@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_78 = windows-once.c +@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_79 = windows-recmutex.c +@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_80 = windows-rwlock.c +@GL_COND_OBJ_WMEMCHR_TRUE@am__append_81 = wmemchr.c +@GL_COND_OBJ_WMEMPCPY_TRUE@am__append_82 = wmempcpy.c subdir = import ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ @@ -264,6 +266,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/absolute-header.m4 \ $(top_srcdir)/import/m4/alloca.m4 \ $(top_srcdir)/import/m4/arpa_inet_h.m4 \ + $(top_srcdir)/import/m4/asm-underscore.m4 \ $(top_srcdir)/import/m4/btowc.m4 \ $(top_srcdir)/import/m4/builtin-expect.m4 \ $(top_srcdir)/import/m4/canonicalize.m4 \ @@ -323,6 +326,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/include_next.m4 \ $(top_srcdir)/import/m4/inet_ntop.m4 \ $(top_srcdir)/import/m4/inttypes.m4 \ + $(top_srcdir)/import/m4/ioctl.m4 \ $(top_srcdir)/import/m4/isblank.m4 \ $(top_srcdir)/import/m4/isnand.m4 \ $(top_srcdir)/import/m4/isnanl.m4 \ @@ -359,6 +363,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/netdb_h.m4 \ $(top_srcdir)/import/m4/netinet_in_h.m4 \ $(top_srcdir)/import/m4/nocrash.m4 \ + $(top_srcdir)/import/m4/nonblocking.m4 \ $(top_srcdir)/import/m4/off_t.m4 \ $(top_srcdir)/import/m4/open-cloexec.m4 \ $(top_srcdir)/import/m4/open-slash.m4 \ @@ -404,6 +409,7 @@ am__aclocal_m4_deps = $(top_srcdir)/import/m4/00gnulib.m4 \ $(top_srcdir)/import/m4/strnlen.m4 \ $(top_srcdir)/import/m4/strstr.m4 \ $(top_srcdir)/import/m4/strtok_r.m4 \ + $(top_srcdir)/import/m4/sys_ioctl_h.m4 \ $(top_srcdir)/import/m4/sys_random_h.m4 \ $(top_srcdir)/import/m4/sys_select_h.m4 \ $(top_srcdir)/import/m4/sys_socket_h.m4 \ @@ -493,67 +499,68 @@ am__DEPENDENCIES_1 = @GL_COND_OBJ_GLOB_PATTERN_P_TRUE@am__objects_33 = libgnu_a-glob_pattern_p.$(OBJEXT) @GL_COND_OBJ_INET_NTOP_TRUE@am__objects_34 = \ @GL_COND_OBJ_INET_NTOP_TRUE@ libgnu_a-inet_ntop.$(OBJEXT) -@GL_COND_OBJ_ISBLANK_TRUE@am__objects_35 = libgnu_a-isblank.$(OBJEXT) -@GL_COND_OBJ_LISTEN_TRUE@am__objects_36 = libgnu_a-listen.$(OBJEXT) +@GL_COND_OBJ_IOCTL_TRUE@am__objects_35 = libgnu_a-ioctl.$(OBJEXT) +@GL_COND_OBJ_ISBLANK_TRUE@am__objects_36 = libgnu_a-isblank.$(OBJEXT) +@GL_COND_OBJ_LISTEN_TRUE@am__objects_37 = libgnu_a-listen.$(OBJEXT) am__dirstamp = $(am__leading_dot)dirstamp -@GL_COND_OBJ_LSTAT_TRUE@am__objects_37 = libgnu_a-lstat.$(OBJEXT) -@GL_COND_OBJ_MBRTOWC_TRUE@am__objects_38 = libgnu_a-mbrtowc.$(OBJEXT) -@GL_COND_OBJ_MBSINIT_TRUE@am__objects_39 = libgnu_a-mbsinit.$(OBJEXT) -@GL_COND_OBJ_MBSRTOWCS_TRUE@am__objects_40 = \ +@GL_COND_OBJ_LSTAT_TRUE@am__objects_38 = libgnu_a-lstat.$(OBJEXT) +@GL_COND_OBJ_MBRTOWC_TRUE@am__objects_39 = libgnu_a-mbrtowc.$(OBJEXT) +@GL_COND_OBJ_MBSINIT_TRUE@am__objects_40 = libgnu_a-mbsinit.$(OBJEXT) +@GL_COND_OBJ_MBSRTOWCS_TRUE@am__objects_41 = \ @GL_COND_OBJ_MBSRTOWCS_TRUE@ libgnu_a-mbsrtowcs.$(OBJEXT) -@GL_COND_OBJ_MBTOWC_TRUE@am__objects_41 = libgnu_a-mbtowc.$(OBJEXT) -@GL_COND_OBJ_MEMCHR_TRUE@am__objects_42 = libgnu_a-memchr.$(OBJEXT) -@GL_COND_OBJ_MEMPCPY_TRUE@am__objects_43 = libgnu_a-mempcpy.$(OBJEXT) -@GL_COND_OBJ_MEMRCHR_TRUE@am__objects_44 = libgnu_a-memrchr.$(OBJEXT) -@GL_COND_OBJ_MKDIR_TRUE@am__objects_45 = libgnu_a-mkdir.$(OBJEXT) -@GL_COND_OBJ_MKDTEMP_TRUE@am__objects_46 = libgnu_a-mkdtemp.$(OBJEXT) -@GL_COND_OBJ_MKOSTEMP_TRUE@am__objects_47 = \ +@GL_COND_OBJ_MBTOWC_TRUE@am__objects_42 = libgnu_a-mbtowc.$(OBJEXT) +@GL_COND_OBJ_MEMCHR_TRUE@am__objects_43 = libgnu_a-memchr.$(OBJEXT) +@GL_COND_OBJ_MEMPCPY_TRUE@am__objects_44 = libgnu_a-mempcpy.$(OBJEXT) +@GL_COND_OBJ_MEMRCHR_TRUE@am__objects_45 = libgnu_a-memrchr.$(OBJEXT) +@GL_COND_OBJ_MKDIR_TRUE@am__objects_46 = libgnu_a-mkdir.$(OBJEXT) +@GL_COND_OBJ_MKDTEMP_TRUE@am__objects_47 = libgnu_a-mkdtemp.$(OBJEXT) +@GL_COND_OBJ_MKOSTEMP_TRUE@am__objects_48 = \ @GL_COND_OBJ_MKOSTEMP_TRUE@ libgnu_a-mkostemp.$(OBJEXT) -@GL_COND_OBJ_MSVC_INVAL_TRUE@am__objects_48 = \ +@GL_COND_OBJ_MSVC_INVAL_TRUE@am__objects_49 = \ @GL_COND_OBJ_MSVC_INVAL_TRUE@ libgnu_a-msvc-inval.$(OBJEXT) -@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__objects_49 = libgnu_a-msvc-nothrow.$(OBJEXT) -@GL_COND_OBJ_OPEN_TRUE@am__objects_50 = libgnu_a-open.$(OBJEXT) -@GL_COND_OBJ_OPENAT_TRUE@am__objects_51 = libgnu_a-openat.$(OBJEXT) -@GL_COND_OBJ_OPENDIR_TRUE@am__objects_52 = libgnu_a-opendir.$(OBJEXT) -@GL_COND_OBJ_PIPE_TRUE@am__objects_53 = libgnu_a-pipe.$(OBJEXT) -@GL_COND_OBJ_RAWMEMCHR_TRUE@am__objects_54 = \ +@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__objects_50 = libgnu_a-msvc-nothrow.$(OBJEXT) +@GL_COND_OBJ_OPEN_TRUE@am__objects_51 = libgnu_a-open.$(OBJEXT) +@GL_COND_OBJ_OPENAT_TRUE@am__objects_52 = libgnu_a-openat.$(OBJEXT) +@GL_COND_OBJ_OPENDIR_TRUE@am__objects_53 = libgnu_a-opendir.$(OBJEXT) +@GL_COND_OBJ_PIPE_TRUE@am__objects_54 = libgnu_a-pipe.$(OBJEXT) +@GL_COND_OBJ_RAWMEMCHR_TRUE@am__objects_55 = \ @GL_COND_OBJ_RAWMEMCHR_TRUE@ libgnu_a-rawmemchr.$(OBJEXT) -@GL_COND_OBJ_READDIR_TRUE@am__objects_55 = libgnu_a-readdir.$(OBJEXT) -@GL_COND_OBJ_READLINK_TRUE@am__objects_56 = \ +@GL_COND_OBJ_READDIR_TRUE@am__objects_56 = libgnu_a-readdir.$(OBJEXT) +@GL_COND_OBJ_READLINK_TRUE@am__objects_57 = \ @GL_COND_OBJ_READLINK_TRUE@ libgnu_a-readlink.$(OBJEXT) -@GL_COND_OBJ_RENAME_TRUE@am__objects_57 = libgnu_a-rename.$(OBJEXT) -@GL_COND_OBJ_REWINDDIR_TRUE@am__objects_58 = \ +@GL_COND_OBJ_RENAME_TRUE@am__objects_58 = libgnu_a-rename.$(OBJEXT) +@GL_COND_OBJ_REWINDDIR_TRUE@am__objects_59 = \ @GL_COND_OBJ_REWINDDIR_TRUE@ libgnu_a-rewinddir.$(OBJEXT) -@GL_COND_OBJ_RMDIR_TRUE@am__objects_59 = libgnu_a-rmdir.$(OBJEXT) -@GL_COND_OBJ_SELECT_TRUE@am__objects_60 = libgnu_a-select.$(OBJEXT) -@GL_COND_OBJ_SETENV_TRUE@am__objects_61 = libgnu_a-setenv.$(OBJEXT) -@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__objects_62 = libgnu_a-setlocale-lock.$(OBJEXT) -@GL_COND_OBJ_SETSOCKOPT_TRUE@am__objects_63 = \ +@GL_COND_OBJ_RMDIR_TRUE@am__objects_60 = libgnu_a-rmdir.$(OBJEXT) +@GL_COND_OBJ_SELECT_TRUE@am__objects_61 = libgnu_a-select.$(OBJEXT) +@GL_COND_OBJ_SETENV_TRUE@am__objects_62 = libgnu_a-setenv.$(OBJEXT) +@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__objects_63 = libgnu_a-setlocale-lock.$(OBJEXT) +@GL_COND_OBJ_SETSOCKOPT_TRUE@am__objects_64 = \ @GL_COND_OBJ_SETSOCKOPT_TRUE@ libgnu_a-setsockopt.$(OBJEXT) -@GL_COND_OBJ_SOCKET_TRUE@am__objects_64 = libgnu_a-socket.$(OBJEXT) -@GL_COND_OBJ_STAT_TRUE@am__objects_65 = libgnu_a-stat.$(OBJEXT) -@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_66 = \ +@GL_COND_OBJ_SOCKET_TRUE@am__objects_65 = libgnu_a-socket.$(OBJEXT) +@GL_COND_OBJ_STAT_TRUE@am__objects_66 = libgnu_a-stat.$(OBJEXT) +@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_67 = \ @GL_COND_OBJ_STDIO_READ_TRUE@ libgnu_a-stdio-read.$(OBJEXT) -@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_67 = \ +@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_68 = \ @GL_COND_OBJ_STDIO_WRITE_TRUE@ libgnu_a-stdio-write.$(OBJEXT) -@GL_COND_OBJ_STRCHRNUL_TRUE@am__objects_68 = \ +@GL_COND_OBJ_STRCHRNUL_TRUE@am__objects_69 = \ @GL_COND_OBJ_STRCHRNUL_TRUE@ libgnu_a-strchrnul.$(OBJEXT) -@GL_COND_OBJ_STRDUP_TRUE@am__objects_69 = libgnu_a-strdup.$(OBJEXT) -@GL_COND_OBJ_STRERROR_TRUE@am__objects_70 = \ +@GL_COND_OBJ_STRDUP_TRUE@am__objects_70 = libgnu_a-strdup.$(OBJEXT) +@GL_COND_OBJ_STRERROR_TRUE@am__objects_71 = \ @GL_COND_OBJ_STRERROR_TRUE@ libgnu_a-strerror.$(OBJEXT) -@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_71 = libgnu_a-strerror-override.$(OBJEXT) -@GL_COND_OBJ_STRNLEN_TRUE@am__objects_72 = libgnu_a-strnlen.$(OBJEXT) -@GL_COND_OBJ_STRTOK_R_TRUE@am__objects_73 = \ +@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_72 = libgnu_a-strerror-override.$(OBJEXT) +@GL_COND_OBJ_STRNLEN_TRUE@am__objects_73 = libgnu_a-strnlen.$(OBJEXT) +@GL_COND_OBJ_STRTOK_R_TRUE@am__objects_74 = \ @GL_COND_OBJ_STRTOK_R_TRUE@ libgnu_a-strtok_r.$(OBJEXT) -@GL_COND_OBJ_TIME_R_TRUE@am__objects_74 = libgnu_a-time_r.$(OBJEXT) -@GL_COND_OBJ_UNSETENV_TRUE@am__objects_75 = \ +@GL_COND_OBJ_TIME_R_TRUE@am__objects_75 = libgnu_a-time_r.$(OBJEXT) +@GL_COND_OBJ_UNSETENV_TRUE@am__objects_76 = \ @GL_COND_OBJ_UNSETENV_TRUE@ libgnu_a-unsetenv.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_76 = libgnu_a-windows-mutex.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_77 = libgnu_a-windows-once.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_78 = libgnu_a-windows-recmutex.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_79 = libgnu_a-windows-rwlock.$(OBJEXT) -@GL_COND_OBJ_WMEMCHR_TRUE@am__objects_80 = libgnu_a-wmemchr.$(OBJEXT) -@GL_COND_OBJ_WMEMPCPY_TRUE@am__objects_81 = \ +@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_77 = libgnu_a-windows-mutex.$(OBJEXT) +@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_78 = libgnu_a-windows-once.$(OBJEXT) +@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_79 = libgnu_a-windows-recmutex.$(OBJEXT) +@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_80 = libgnu_a-windows-rwlock.$(OBJEXT) +@GL_COND_OBJ_WMEMCHR_TRUE@am__objects_81 = libgnu_a-wmemchr.$(OBJEXT) +@GL_COND_OBJ_WMEMPCPY_TRUE@am__objects_82 = \ @GL_COND_OBJ_WMEMPCPY_TRUE@ libgnu_a-wmempcpy.$(OBJEXT) am_libgnu_a_OBJECTS = $(am__objects_1) libgnu_a-openat-proc.$(OBJEXT) \ libgnu_a-basename-lgpl.$(OBJEXT) $(am__objects_2) \ @@ -575,38 +582,39 @@ am_libgnu_a_OBJECTS = $(am__objects_1) libgnu_a-openat-proc.$(OBJEXT) \ libgnu_a-getprogname.$(OBJEXT) $(am__objects_30) \ $(am__objects_31) $(am__objects_32) $(am__objects_33) \ libgnu_a-hard-locale.$(OBJEXT) $(am__objects_34) \ - $(am__objects_35) $(am__objects_36) \ + $(am__objects_35) $(am__objects_36) $(am__objects_37) \ libgnu_a-localcharset.$(OBJEXT) \ - glthread/libgnu_a-lock.$(OBJEXT) $(am__objects_37) \ + glthread/libgnu_a-lock.$(OBJEXT) $(am__objects_38) \ libgnu_a-malloca.$(OBJEXT) libgnu_a-math.$(OBJEXT) \ - $(am__objects_38) $(am__objects_39) $(am__objects_40) \ - $(am__objects_41) $(am__objects_42) $(am__objects_43) \ - $(am__objects_44) $(am__objects_45) $(am__objects_46) \ - $(am__objects_47) $(am__objects_48) $(am__objects_49) \ - $(am__objects_50) $(am__objects_51) \ - libgnu_a-openat-die.$(OBJEXT) $(am__objects_52) \ + $(am__objects_39) $(am__objects_40) $(am__objects_41) \ + $(am__objects_42) $(am__objects_43) $(am__objects_44) \ + $(am__objects_45) $(am__objects_46) $(am__objects_47) \ + $(am__objects_48) $(am__objects_49) $(am__objects_50) \ + libgnu_a-nonblocking.$(OBJEXT) $(am__objects_51) \ + $(am__objects_52) libgnu_a-openat-die.$(OBJEXT) \ $(am__objects_53) $(am__objects_54) $(am__objects_55) \ $(am__objects_56) $(am__objects_57) $(am__objects_58) \ - $(am__objects_59) libgnu_a-save-cwd.$(OBJEXT) \ + $(am__objects_59) $(am__objects_60) \ + libgnu_a-save-cwd.$(OBJEXT) \ malloc/libgnu_a-scratch_buffer_dupfree.$(OBJEXT) \ malloc/libgnu_a-scratch_buffer_grow.$(OBJEXT) \ malloc/libgnu_a-scratch_buffer_grow_preserve.$(OBJEXT) \ malloc/libgnu_a-scratch_buffer_set_array_size.$(OBJEXT) \ - $(am__objects_60) $(am__objects_61) \ - libgnu_a-setlocale_null.$(OBJEXT) $(am__objects_62) \ - $(am__objects_63) $(am__objects_64) libgnu_a-sockets.$(OBJEXT) \ - $(am__objects_65) libgnu_a-stat-time.$(OBJEXT) \ - $(am__objects_66) $(am__objects_67) $(am__objects_68) \ - $(am__objects_69) $(am__objects_70) $(am__objects_71) \ - $(am__objects_72) libgnu_a-strnlen1.$(OBJEXT) \ - $(am__objects_73) libgnu_a-sys_socket.$(OBJEXT) \ + $(am__objects_61) $(am__objects_62) \ + libgnu_a-setlocale_null.$(OBJEXT) $(am__objects_63) \ + $(am__objects_64) $(am__objects_65) libgnu_a-sockets.$(OBJEXT) \ + $(am__objects_66) libgnu_a-stat-time.$(OBJEXT) \ + $(am__objects_67) $(am__objects_68) $(am__objects_69) \ + $(am__objects_70) $(am__objects_71) $(am__objects_72) \ + $(am__objects_73) libgnu_a-strnlen1.$(OBJEXT) \ + $(am__objects_74) libgnu_a-sys_socket.$(OBJEXT) \ libgnu_a-tempname.$(OBJEXT) \ - glthread/libgnu_a-threadlib.$(OBJEXT) $(am__objects_74) \ + glthread/libgnu_a-threadlib.$(OBJEXT) $(am__objects_75) \ libgnu_a-unistd.$(OBJEXT) libgnu_a-dup-safer.$(OBJEXT) \ libgnu_a-fd-safer.$(OBJEXT) libgnu_a-pipe-safer.$(OBJEXT) \ - $(am__objects_75) libgnu_a-wctype-h.$(OBJEXT) \ - $(am__objects_76) $(am__objects_77) $(am__objects_78) \ - $(am__objects_79) $(am__objects_80) $(am__objects_81) + $(am__objects_76) libgnu_a-wctype-h.$(OBJEXT) \ + $(am__objects_77) $(am__objects_78) $(am__objects_79) \ + $(am__objects_80) $(am__objects_81) $(am__objects_82) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) AM_V_P = $(am__v_P_@AM_V@) @@ -691,6 +699,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ +ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -880,6 +889,7 @@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ +GL_GNULIB_IOCTL = @GL_GNULIB_IOCTL@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ @@ -1517,6 +1527,7 @@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ @@ -1654,6 +1665,7 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ @@ -1686,6 +1698,7 @@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ @@ -1820,6 +1833,7 @@ REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ @@ -1998,6 +2012,8 @@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ +SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ @@ -2093,26 +2109,28 @@ EXTRA_DIST = m4/gnulib-cache.m4 w32sock.h alloca.c alloca.in.h \ $(top_srcdir)/import/extra/gendocs.sh \ $(top_srcdir)/import/extra/gitlog-to-changelog glob_internal.h \ glob-libc.h glob.in.h hard-locale.h intprops.h inttypes.in.h \ - float+.h isnan.c isnand-nolibm.h isnand.c float+.h isnan.c \ - isnanl-nolibm.h isnanl.c cdefs.h libc-config.h limits.in.h \ - w32sock.h localcharset.h locale.in.h malloc.c malloca.h \ - math.in.h lc-charset-dispatch.c lc-charset-dispatch.h \ - mbrtowc-impl-utf8.h mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h \ - windows-initguard.h mbsrtowcs-impl.h mbsrtowcs-state.c \ - mbtowc-impl.h memchr.valgrind memmem.c memmem.c str-two-way.h \ - msvc-inval.h msvc-nothrow.h netdb.in.h netinet_in.in.h \ - openat.h dirent-private.h pathmax.h rawmemchr.valgrind \ - dirent-private.h realloc.c dirent-private.h same-inode.h \ - save-cwd.h malloc/scratch_buffer.h scratch_buffer.h \ - setlocale_null.h windows-initguard.h w32sock.h signal.in.h \ - _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h w32sock.h \ - w32sock.h stat-w32.c stat-w32.h stat-time.h stdalign.in.h \ - stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \ - strchrnul.valgrind streq.h strerror-override.h strerror_r.c \ - string.in.h strings.in.h strstr.c str-two-way.h strstr.c \ - sys_random.in.h sys_select.in.h sys_socket.in.h sys_stat.in.h \ - sys_time.in.h sys_types.in.h sys_uio.in.h sys_wait.in.h \ - tempname.h time.in.h unistd.in.h unistd--.h unistd-safer.h \ + w32sock.h float+.h isnan.c isnand-nolibm.h isnand.c float+.h \ + isnan.c isnanl-nolibm.h isnanl.c cdefs.h libc-config.h \ + limits.in.h w32sock.h localcharset.h locale.in.h malloc.c \ + malloca.h math.in.h lc-charset-dispatch.c \ + lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h \ + mbtowc-lock.c mbtowc-lock.h windows-initguard.h \ + mbsrtowcs-impl.h mbsrtowcs-state.c mbtowc-impl.h \ + memchr.valgrind memmem.c memmem.c str-two-way.h msvc-inval.h \ + msvc-nothrow.h netdb.in.h netinet_in.in.h nonblocking.h \ + stdio-read.c stdio-write.c openat.h dirent-private.h pathmax.h \ + rawmemchr.valgrind dirent-private.h realloc.c dirent-private.h \ + same-inode.h save-cwd.h malloc/scratch_buffer.h \ + scratch_buffer.h setlocale_null.h windows-initguard.h \ + w32sock.h signal.in.h _Noreturn.h arg-nonnull.h c++defs.h \ + warn-on-use.h w32sock.h w32sock.h stat-w32.c stat-w32.h \ + stat-time.h stdalign.in.h stdbool.in.h stddef.in.h stdint.in.h \ + stdio.in.h stdlib.in.h strchrnul.valgrind streq.h \ + strerror-override.h strerror_r.c string.in.h strings.in.h \ + strstr.c str-two-way.h strstr.c sys_ioctl.in.h sys_random.in.h \ + sys_select.in.h sys_socket.in.h sys_stat.in.h sys_time.in.h \ + sys_types.in.h sys_uio.in.h sys_wait.in.h tempname.h time.in.h \ + unistd.in.h unistd--.h unistd-safer.h \ $(top_srcdir)/import/extra/update-copyright verify.h \ wchar.in.h wctype.in.h windows-initguard.h windows-mutex.h \ windows-once.h windows-initguard.h windows-recmutex.h \ @@ -2123,9 +2141,9 @@ BUILT_SOURCES = $(ALLOCA_H) arpa/inet.h ctype.h dirent.h $(ERRNO_H) \ inttypes.h $(LIMITS_H) locale.h math.h netdb.h $(NETINET_IN_H) \ malloc/scratch_buffer.gl.h signal.h $(STDALIGN_H) $(STDBOOL_H) \ $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h strings.h \ - sys/random.h sys/select.h sys/socket.h sys/stat.h sys/time.h \ - sys/types.h sys/uio.h sys/wait.h time.h unistd.h wchar.h \ - wctype.h + sys/ioctl.h sys/random.h sys/select.h sys/socket.h sys/stat.h \ + sys/time.h sys/types.h sys/uio.h sys/wait.h time.h unistd.h \ + wchar.h wctype.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \ arpa/inet.h-t ctype.h ctype.h-t dirent.h dirent.h-t errno.h \ @@ -2137,13 +2155,13 @@ MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \ malloc/scratch_buffer.gl.h-t signal.h signal.h-t stdalign.h \ stdalign.h-t stdbool.h stdbool.h-t stddef.h stddef.h-t \ stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \ - string.h string.h-t strings.h strings.h-t sys/random.h \ - sys/random.h-t sys/select.h sys/select.h-t sys/socket.h \ - sys/socket.h-t sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t \ - sys/types.h sys/types.h-t sys/uio.h sys/uio.h-t sys/wait.h \ - sys/wait.h-t time.h time.h-t unistd.h unistd.h-t wchar.h \ - wchar.h-t wctype.h wctype.h-t -MOSTLYCLEANDIRS = arpa netinet sys sys sys sys sys sys + string.h string.h-t strings.h strings.h-t sys/ioctl.h \ + sys/ioctl.h-t sys/random.h sys/random.h-t sys/select.h \ + sys/select.h-t sys/socket.h sys/socket.h-t sys/stat.h \ + sys/stat.h-t sys/time.h sys/time.h-t sys/types.h sys/types.h-t \ + sys/uio.h sys/uio.h-t sys/wait.h sys/wait.h-t time.h time.h-t \ + unistd.h unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t +MOSTLYCLEANDIRS = arpa netinet sys sys sys sys sys sys sys CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = @@ -2164,37 +2182,37 @@ libgnu_a_SOURCES = $(am__append_1) openat-priv.h openat-proc.c \ $(am__append_29) getprogname.h getprogname.c $(am__append_30) \ gettext.h $(am__append_31) $(am__append_32) $(am__append_33) \ hard-locale.c idx.h $(am__append_34) $(am__append_35) \ - $(am__append_36) localcharset.c glthread/lock.h \ - glthread/lock.c $(am__append_37) malloca.c math.c \ - $(am__append_38) $(am__append_39) $(am__append_40) \ - $(am__append_41) $(am__append_42) $(am__append_43) \ - $(am__append_44) minmax.h $(am__append_45) $(am__append_46) \ - $(am__append_47) $(am__append_48) $(am__append_49) \ - $(am__append_50) $(am__append_51) openat-die.c \ - $(am__append_52) $(am__append_53) $(am__append_54) \ - $(am__append_55) $(am__append_56) $(am__append_57) \ - $(am__append_58) $(am__append_59) save-cwd.c \ + $(am__append_36) $(am__append_37) localcharset.c \ + glthread/lock.h glthread/lock.c $(am__append_38) malloca.c \ + math.c $(am__append_39) $(am__append_40) $(am__append_41) \ + $(am__append_42) $(am__append_43) $(am__append_44) \ + $(am__append_45) minmax.h $(am__append_46) $(am__append_47) \ + $(am__append_48) $(am__append_49) $(am__append_50) \ + nonblocking.c $(am__append_51) $(am__append_52) openat-die.c \ + $(am__append_53) $(am__append_54) $(am__append_55) \ + $(am__append_56) $(am__append_57) $(am__append_58) \ + $(am__append_59) $(am__append_60) save-cwd.c \ malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c \ malloc/scratch_buffer_grow_preserve.c \ - malloc/scratch_buffer_set_array_size.c $(am__append_60) \ - $(am__append_61) setlocale_null.c $(am__append_62) \ - $(am__append_63) $(am__append_64) sockets.h sockets.c \ - $(am__append_65) stat-time.c $(am__append_66) $(am__append_67) \ - $(am__append_68) $(am__append_69) $(am__append_70) \ - $(am__append_71) $(am__append_72) strnlen1.h strnlen1.c \ - $(am__append_73) sys_socket.c tempname.c glthread/threadlib.c \ - $(am__append_74) unistd.c dup-safer.c fd-safer.c pipe-safer.c \ - $(am__append_75) wctype-h.c $(am__append_76) $(am__append_77) \ - $(am__append_78) $(am__append_79) $(am__append_80) \ - $(am__append_81) + malloc/scratch_buffer_set_array_size.c $(am__append_61) \ + $(am__append_62) setlocale_null.c $(am__append_63) \ + $(am__append_64) $(am__append_65) sockets.h sockets.c \ + $(am__append_66) stat-time.c $(am__append_67) $(am__append_68) \ + $(am__append_69) $(am__append_70) $(am__append_71) \ + $(am__append_72) $(am__append_73) strnlen1.h strnlen1.c \ + $(am__append_74) sys_socket.c tempname.c glthread/threadlib.c \ + $(am__append_75) unistd.c dup-safer.c fd-safer.c pipe-safer.c \ + $(am__append_76) wctype-h.c $(am__append_77) $(am__append_78) \ + $(am__append_79) $(am__append_80) $(am__append_81) \ + $(am__append_82) libgnu_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ EXTRA_libgnu_a_SOURCES = alloca.c fnmatch.c fnmatch_loop.c fnmatch.c \ frexp.c frexp.c frexpl.c stat-w32.c at-func.c isnan.c isnand.c \ isnan.c isnanl.c malloc.c lc-charset-dispatch.c mbtowc-lock.c \ - mbsrtowcs-state.c memmem.c memmem.c realloc.c stat-w32.c \ - strerror_r.c strstr.c strstr.c + mbsrtowcs-state.c memmem.c memmem.c stdio-read.c stdio-write.c \ + realloc.c stat-w32.c strerror_r.c strstr.c strstr.c # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression @@ -2375,6 +2393,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-globfree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-hard-locale.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-inet_ntop.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-ioctl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-isblank.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-isnan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-isnand.Po@am__quote@ @@ -2402,6 +2421,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mkostemp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-inval.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-nothrow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nonblocking.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat-die.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat-proc.Po@am__quote@ @@ -3146,6 +3166,20 @@ libgnu_a-inet_ntop.obj: inet_ntop.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-inet_ntop.obj `if test -f 'inet_ntop.c'; then $(CYGPATH_W) 'inet_ntop.c'; else $(CYGPATH_W) '$(srcdir)/inet_ntop.c'; fi` +libgnu_a-ioctl.o: ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ioctl.o -MD -MP -MF $(DEPDIR)/libgnu_a-ioctl.Tpo -c -o libgnu_a-ioctl.o `test -f 'ioctl.c' || echo '$(srcdir)/'`ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ioctl.Tpo $(DEPDIR)/libgnu_a-ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioctl.c' object='libgnu_a-ioctl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ioctl.o `test -f 'ioctl.c' || echo '$(srcdir)/'`ioctl.c + +libgnu_a-ioctl.obj: ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ioctl.obj -MD -MP -MF $(DEPDIR)/libgnu_a-ioctl.Tpo -c -o libgnu_a-ioctl.obj `if test -f 'ioctl.c'; then $(CYGPATH_W) 'ioctl.c'; else $(CYGPATH_W) '$(srcdir)/ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ioctl.Tpo $(DEPDIR)/libgnu_a-ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioctl.c' object='libgnu_a-ioctl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ioctl.obj `if test -f 'ioctl.c'; then $(CYGPATH_W) 'ioctl.c'; else $(CYGPATH_W) '$(srcdir)/ioctl.c'; fi` + libgnu_a-isblank.o: isblank.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-isblank.o -MD -MP -MF $(DEPDIR)/libgnu_a-isblank.Tpo -c -o libgnu_a-isblank.o `test -f 'isblank.c' || echo '$(srcdir)/'`isblank.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-isblank.Tpo $(DEPDIR)/libgnu_a-isblank.Po @@ -3412,6 +3446,20 @@ libgnu_a-msvc-nothrow.obj: msvc-nothrow.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-msvc-nothrow.obj `if test -f 'msvc-nothrow.c'; then $(CYGPATH_W) 'msvc-nothrow.c'; else $(CYGPATH_W) '$(srcdir)/msvc-nothrow.c'; fi` +libgnu_a-nonblocking.o: nonblocking.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-nonblocking.o -MD -MP -MF $(DEPDIR)/libgnu_a-nonblocking.Tpo -c -o libgnu_a-nonblocking.o `test -f 'nonblocking.c' || echo '$(srcdir)/'`nonblocking.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-nonblocking.Tpo $(DEPDIR)/libgnu_a-nonblocking.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nonblocking.c' object='libgnu_a-nonblocking.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-nonblocking.o `test -f 'nonblocking.c' || echo '$(srcdir)/'`nonblocking.c + +libgnu_a-nonblocking.obj: nonblocking.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-nonblocking.obj -MD -MP -MF $(DEPDIR)/libgnu_a-nonblocking.Tpo -c -o libgnu_a-nonblocking.obj `if test -f 'nonblocking.c'; then $(CYGPATH_W) 'nonblocking.c'; else $(CYGPATH_W) '$(srcdir)/nonblocking.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-nonblocking.Tpo $(DEPDIR)/libgnu_a-nonblocking.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nonblocking.c' object='libgnu_a-nonblocking.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-nonblocking.obj `if test -f 'nonblocking.c'; then $(CYGPATH_W) 'nonblocking.c'; else $(CYGPATH_W) '$(srcdir)/nonblocking.c'; fi` + libgnu_a-open.o: open.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-open.o -MD -MP -MF $(DEPDIR)/libgnu_a-open.Tpo -c -o libgnu_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-open.Tpo $(DEPDIR)/libgnu_a-open.Po @@ -5720,6 +5768,26 @@ strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE $(srcdir)/strings.in.h > $@-t $(AM_V_at)mv $@-t $@ +# We need the following in order to create <sys/ioctl.h> when the system +# does not have a complete one. +sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) + $(AM_V_GEN)$(MKDIR_P) 'sys' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \ + -e 's/@''GNULIB_IOCTL''@/$(GL_GNULIB_IOCTL)/g' \ + -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ + -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/sys_ioctl.in.h > $@-t + $(AM_V_at)mv $@-t $@ + # We need the following in order to create <sys/random.h> when the system # doesn't have one. sys/random.h: sys_random.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) diff --git a/gnulib/import/ioctl.c b/gnulib/import/ioctl.c new file mode 100644 index 0000000..b1c7b2e --- /dev/null +++ b/gnulib/import/ioctl.c @@ -0,0 +1,92 @@ +/* ioctl.c --- wrappers for Windows ioctl function + + Copyright (C) 2008-2022 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Paolo Bonzini */ + +#include <config.h> + +#include <sys/ioctl.h> + +#include <stdarg.h> + +#if HAVE_IOCTL + +/* Provide a wrapper with the POSIX prototype. */ +# undef ioctl +int +rpl_ioctl (int fd, int request, ... /* {void *,char *} arg */) +{ + void *buf; + va_list args; + + va_start (args, request); + buf = va_arg (args, void *); + va_end (args); + + /* Cast 'request' so that when the system's ioctl function takes a 64-bit + request argument, the value gets zero-extended, not sign-extended. */ + return ioctl (fd, (unsigned int) request, buf); +} + +#else /* mingw */ + +# include <errno.h> + +/* Get HANDLE. */ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> + +# include "fd-hook.h" +/* Get _get_osfhandle. */ +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include <io.h> +# endif + +static int +primary_ioctl (int fd, int request, void *arg) +{ + /* We don't support FIONBIO on pipes here. If you want to make pipe + fds non-blocking, use the gnulib 'nonblocking' module, until + gnulib implements fcntl F_GETFL / F_SETFL with O_NONBLOCK. */ + + if ((HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE) + errno = ENOSYS; + else + errno = EBADF; + return -1; +} + +int +ioctl (int fd, int request, ... /* {void *,char *} arg */) +{ + void *arg; + va_list args; + + va_start (args, request); + arg = va_arg (args, void *); + va_end (args); + +# if WINDOWS_SOCKETS + return execute_all_ioctl_hooks (primary_ioctl, fd, request, arg); +# else + return primary_ioctl (fd, request, arg); +# endif +} + +#endif diff --git a/gnulib/import/m4/asm-underscore.m4 b/gnulib/import/m4/asm-underscore.m4 new file mode 100644 index 0000000..950aa8d --- /dev/null +++ b/gnulib/import/m4/asm-underscore.m4 @@ -0,0 +1,83 @@ +# asm-underscore.m4 serial 5 +dnl Copyright (C) 2010-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp. + +# gl_ASM_SYMBOL_PREFIX +# Tests for the prefix of C symbols at the assembly language level and the +# linker level. This prefix is either an underscore or empty. Defines the +# C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to +# a stringified variant of this prefix. + +AC_DEFUN([gl_ASM_SYMBOL_PREFIX], +[ + AC_REQUIRE([AC_PROG_EGREP]) + dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because + dnl 1. It works only for GCC. + dnl 2. It is incorrectly defined on some platforms, in some GCC versions. + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK( + [whether C symbols are prefixed with underscore at the linker level], + [gl_cv_prog_as_underscore], + [cat > conftest.c <<EOF +#ifdef __cplusplus +extern "C" int foo (void); +#endif +int foo(void) { return 0; } +EOF + # Look for the assembly language name in the .s file. + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 + if LC_ALL=C $EGREP '(^|[[^a-zA-Z0-9_]])_foo([[^a-zA-Z0-9_]]|$)' conftest.$gl_asmext >/dev/null; then + gl_cv_prog_as_underscore=yes + else + gl_cv_prog_as_underscore=no + fi + rm -f conftest* + ]) + if test $gl_cv_prog_as_underscore = yes; then + USER_LABEL_PREFIX=_ + else + USER_LABEL_PREFIX= + fi + AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], + [Define to the prefix of C symbols at the assembler and linker level, + either an underscore or empty.]) + ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' + AC_SUBST([ASM_SYMBOL_PREFIX]) +]) + +# gl_C_ASM +# Determines how to produce an assembly language file from C source code. +# Sets the variables: +# gl_asmext - the extension of assembly language output, +# gl_c_asm_opt - the C compiler option that produces assembly language output. + +AC_DEFUN([gl_C_ASM], +[ + AC_EGREP_CPP([MicrosoftCompiler], + [ +#ifdef _MSC_VER +MicrosoftCompiler +#endif + ], + [dnl Microsoft's 'cl' and 'clang-cl' produce an .asm file, whereas 'clang' + dnl produces a .s file. Need to distinguish 'clang' and 'clang-cl'. + rm -f conftest* + echo 'int dummy;' > conftest.c + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c) >/dev/null 2>&1 + if test -f conftest.o; then + gl_asmext='s' + gl_c_asm_opt='-S' + else + gl_asmext='asm' + gl_c_asm_opt='-c -Fa' + fi + rm -f conftest* + ], + [gl_asmext='s' + gl_c_asm_opt='-S' + ]) +]) diff --git a/gnulib/import/m4/gnulib-cache.m4 b/gnulib/import/m4/gnulib-cache.m4 index a5f8e30..6529416 100644 --- a/gnulib/import/m4/gnulib-cache.m4 +++ b/gnulib/import/m4/gnulib-cache.m4 @@ -68,6 +68,7 @@ # mkdtemp \ # mkostemp \ # netdb \ +# nonblocking \ # pathmax \ # rawmemchr \ # readlink \ @@ -123,6 +124,7 @@ gl_MODULES([ mkdtemp mkostemp netdb + nonblocking pathmax rawmemchr readlink diff --git a/gnulib/import/m4/gnulib-comp.m4 b/gnulib/import/m4/gnulib-comp.m4 index 94e2cfe..a067331 100644 --- a/gnulib/import/m4/gnulib-comp.m4 +++ b/gnulib/import/m4/gnulib-comp.m4 @@ -125,6 +125,7 @@ AC_DEFUN([gl_EARLY], # Code from module intprops: # Code from module inttypes: # Code from module inttypes-incomplete: + # Code from module ioctl: # Code from module isblank: # Code from module isnand-nolibm: # Code from module isnanl-nolibm: @@ -160,6 +161,7 @@ AC_DEFUN([gl_EARLY], # Code from module netdb: # Code from module netinet_in: # Code from module nocrash: + # Code from module nonblocking: # Code from module open: # Code from module openat: # Code from module openat-die: @@ -213,6 +215,7 @@ AC_DEFUN([gl_EARLY], # Code from module strstr: # Code from module strstr-simple: # Code from module strtok_r: + # Code from module sys_ioctl: # Code from module sys_random: # Code from module sys_select: # Code from module sys_socket: @@ -517,6 +520,10 @@ AC_DEFUN([gl_INIT], gl_INTTYPES_INCOMPLETE gl_INTTYPES_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P + gl_FUNC_IOCTL + gl_CONDITIONAL([GL_COND_OBJ_IOCTL], + [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]) + gl_SYS_IOCTL_MODULE_INDICATOR([ioctl]) gl_FUNC_ISBLANK gl_CONDITIONAL([GL_COND_OBJ_ISBLANK], [test $HAVE_ISBLANK = 0]) gl_MODULE_INDICATOR([isblank]) @@ -655,6 +662,17 @@ AC_DEFUN([gl_INIT], gl_HEADER_NETINET_IN gl_CONDITIONAL_HEADER([netinet/in.h]) AC_PROG_MKDIR_P + gl_NONBLOCKING_IO + gl_FCNTL_MODULE_INDICATOR([nonblocking]) + dnl Define the C macro GNULIB_NONBLOCKING to 1. + gl_MODULE_INDICATOR([nonblocking]) + dnl Define the substituted variable GNULIB_STDIO_H_NONBLOCKING to 1. + gl_STDIO_H_REQUIRE_DEFAULTS + AC_REQUIRE([gl_ASM_SYMBOL_PREFIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING], [1]) + dnl Define the substituted variable GNULIB_UNISTD_H_NONBLOCKING to 1. + gl_UNISTD_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING], [1]) gl_FUNC_OPEN gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1]) AM_COND_IF([GL_COND_OBJ_OPEN], [ @@ -866,6 +884,9 @@ AC_DEFUN([gl_INIT], gl_PREREQ_STRTOK_R ]) gl_STRING_MODULE_INDICATOR([strtok_r]) + gl_SYS_IOCTL_H + gl_SYS_IOCTL_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P gl_SYS_RANDOM_H gl_SYS_RANDOM_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P @@ -1210,6 +1231,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/inet_ntop.c lib/intprops.h lib/inttypes.in.h + lib/ioctl.c lib/isblank.c lib/isnan.c lib/isnand-nolibm.h @@ -1262,6 +1284,8 @@ AC_DEFUN([gl_FILE_LIST], [ lib/msvc-nothrow.h lib/netdb.in.h lib/netinet_in.in.h + lib/nonblocking.c + lib/nonblocking.h lib/open.c lib/openat-die.c lib/openat-priv.h @@ -1324,6 +1348,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/strnlen1.h lib/strstr.c lib/strtok_r.c + lib/sys_ioctl.in.h lib/sys_random.in.h lib/sys_select.in.h lib/sys_socket.c @@ -1366,6 +1391,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/absolute-header.m4 m4/alloca.m4 m4/arpa_inet_h.m4 + m4/asm-underscore.m4 m4/btowc.m4 m4/builtin-expect.m4 m4/canonicalize.m4 @@ -1426,6 +1452,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/include_next.m4 m4/inet_ntop.m4 m4/inttypes.m4 + m4/ioctl.m4 m4/isblank.m4 m4/isnand.m4 m4/isnanl.m4 @@ -1462,6 +1489,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/netdb_h.m4 m4/netinet_in_h.m4 m4/nocrash.m4 + m4/nonblocking.m4 m4/off_t.m4 m4/open-cloexec.m4 m4/open-slash.m4 @@ -1507,6 +1535,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/strnlen.m4 m4/strstr.m4 m4/strtok_r.m4 + m4/sys_ioctl_h.m4 m4/sys_random_h.m4 m4/sys_select_h.m4 m4/sys_socket_h.m4 diff --git a/gnulib/import/m4/ioctl.m4 b/gnulib/import/m4/ioctl.m4 new file mode 100644 index 0000000..7c72134 --- /dev/null +++ b/gnulib/import/m4/ioctl.m4 @@ -0,0 +1,44 @@ +# ioctl.m4 serial 6 +dnl Copyright (C) 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_IOCTL], +[ + AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) + AC_REQUIRE([gl_SYS_SOCKET_H]) + HAVE_IOCTL=1 + if test "$ac_cv_header_winsock2_h" = yes; then + dnl Even if the 'socket' module is not used here, another part of the + dnl application may use it and pass file descriptors that refer to + dnl sockets to the ioctl() function. So enable the support for sockets. + HAVE_IOCTL=0 + else + AC_CHECK_FUNCS([ioctl]) + dnl On glibc systems, the second parameter is 'unsigned long int request', + dnl not 'int request'. We cannot simply cast the function pointer, but + dnl instead need a wrapper. + AC_CACHE_CHECK([for ioctl with POSIX signature], + [gl_cv_func_ioctl_posix_signature], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/ioctl.h> + /* On some platforms, ioctl() is declared in <unistd.h>. */ + #include <unistd.h> + ]], + [[extern + #ifdef __cplusplus + "C" + #endif + int ioctl (int, int, ...); + ]]) + ], + [gl_cv_func_ioctl_posix_signature=yes], + [gl_cv_func_ioctl_posix_signature=no]) + ]) + if test $gl_cv_func_ioctl_posix_signature != yes; then + REPLACE_IOCTL=1 + fi + fi +]) diff --git a/gnulib/import/m4/nonblocking.m4 b/gnulib/import/m4/nonblocking.m4 new file mode 100644 index 0000000..b9d2325 --- /dev/null +++ b/gnulib/import/m4/nonblocking.m4 @@ -0,0 +1,29 @@ +# nonblocking.m4 serial 3 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Tests whether non-blocking I/O is natively supported by read(), write(). +dnl Sets gl_cv_have_nonblocking. +dnl Also tests whether open() supports O_NONBLOCK. +dnl Sets gl_cv_have_open_O_NONBLOCK. +AC_DEFUN([gl_NONBLOCKING_IO], +[ + dnl Ensure to expand the default settings once only, before all statements + dnl that occur in other macros. + AC_REQUIRE([gl_NONBLOCKING_IO_BODY]) +]) + +AC_DEFUN([gl_NONBLOCKING_IO_BODY], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) gl_cv_have_nonblocking=no ;; + *) gl_cv_have_nonblocking=yes ;; + esac + case "$host_os" in + mingw*) gl_cv_have_open_O_NONBLOCK=no ;; + *) gl_cv_have_open_O_NONBLOCK=yes ;; + esac +]) diff --git a/gnulib/import/m4/sys_ioctl_h.m4 b/gnulib/import/m4/sys_ioctl_h.m4 new file mode 100644 index 0000000..be65364 --- /dev/null +++ b/gnulib/import/m4/sys_ioctl_h.m4 @@ -0,0 +1,79 @@ +# sys_ioctl_h.m4 serial 15 +dnl Copyright (C) 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Bruno Haible. + +AC_DEFUN_ONCE([gl_SYS_IOCTL_H], +[ + dnl Ensure to expand the default settings once only, before all statements + dnl that occur in other macros. + AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) + + AC_CHECK_HEADERS_ONCE([sys/ioctl.h]) + if test $ac_cv_header_sys_ioctl_h = yes; then + HAVE_SYS_IOCTL_H=1 + dnl Test whether <sys/ioctl.h> declares ioctl(), or whether some other + dnl header file, such as <unistd.h> or <stropts.h>, is needed for that. + AC_CACHE_CHECK([whether <sys/ioctl.h> declares ioctl], + [gl_cv_decl_ioctl_in_sys_ioctl_h], + [dnl We cannot use AC_CHECK_DECL because it produces its own messages. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/ioctl.h>]], + [[(void) ioctl;]])], + [gl_cv_decl_ioctl_in_sys_ioctl_h=yes], + [gl_cv_decl_ioctl_in_sys_ioctl_h=no]) + ]) + else + HAVE_SYS_IOCTL_H=0 + fi + AC_SUBST([HAVE_SYS_IOCTL_H]) + dnl <sys/ioctl.h> is always overridden, because of GNULIB_POSIXCHECK. + gl_CHECK_NEXT_HEADERS([sys/ioctl.h]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <sys/ioctl.h> +/* Some platforms declare ioctl in the wrong header. */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include <unistd.h> +#endif + ]], [ioctl]) +]) + +# gl_SYS_IOCTL_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_SYS_IOCTL_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_SYS_IOCTL_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_SYS_IOCTL_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_IOCTL_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IOCTL]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_IOCTL_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) +]) + +AC_DEFUN([gl_SYS_IOCTL_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + SYS_IOCTL_H_HAVE_WINSOCK2_H=0; AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H]) + SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) + REPLACE_IOCTL=0; AC_SUBST([REPLACE_IOCTL]) +]) diff --git a/gnulib/import/nonblocking.c b/gnulib/import/nonblocking.c new file mode 100644 index 0000000..9ea31f7 --- /dev/null +++ b/gnulib/import/nonblocking.c @@ -0,0 +1,163 @@ +/* Non-blocking I/O for pipe or socket descriptors. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "nonblocking.h" + +#include <errno.h> + +#if defined _WIN32 && ! defined __CYGWIN__ +/* Native Windows API. */ + +# include <sys/ioctl.h> +# include <sys/socket.h> +# include <unistd.h> + +/* Get declarations of the native Windows API functions. */ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> + +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include <io.h> +# endif + +/* Don't assume that UNICODE is not defined. */ +# undef GetNamedPipeHandleState +# define GetNamedPipeHandleState GetNamedPipeHandleStateA + +int +get_nonblocking_flag (int desc) +{ + HANDLE h = (HANDLE) _get_osfhandle (desc); + if (h == INVALID_HANDLE_VALUE) + { + errno = EBADF; + return -1; + } + if (GetFileType (h) == FILE_TYPE_PIPE) + { + /* h is a pipe or socket. */ + DWORD state; + if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0)) + /* h is a pipe. */ + return (state & PIPE_NOWAIT) != 0; + else + /* h is a socket. */ + errno = ENOSYS; + return -1; + } + else + /* The native Windows API does not support non-blocking on regular + files. */ + return 0; +} + +int +set_nonblocking_flag (int desc, bool value) +{ + HANDLE h = (HANDLE) _get_osfhandle (desc); + if (h == INVALID_HANDLE_VALUE) + { + errno = EBADF; + return -1; + } + if (GetFileType (h) == FILE_TYPE_PIPE) + { + /* h is a pipe or socket. */ + DWORD state; + if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0)) + { + /* h is a pipe. */ + if ((state & PIPE_NOWAIT) != 0) + { + if (value) + return 0; + state &= ~PIPE_NOWAIT; + } + else + { + if (!value) + return 0; + state |= PIPE_NOWAIT; + } + if (SetNamedPipeHandleState (h, &state, NULL, NULL)) + return 0; + errno = EINVAL; + return -1; + } + else + { + /* h is a socket. */ + int v = value; + return ioctl (desc, FIONBIO, &v); + } + } + else + { + /* The native Windows API does not support non-blocking on regular + files. */ + if (!value) + return 0; + errno = ENOTSUP; + return -1; + } +} + +#else +/* Unix API. */ + +# include <fcntl.h> + +# if GNULIB_defined_O_NONBLOCK +# error Please port nonblocking to your platform +# endif + +/* We don't need the gnulib replacement of fcntl() here. */ +# undef fcntl + +int +get_nonblocking_flag (int desc) +{ + int fcntl_flags; + + fcntl_flags = fcntl (desc, F_GETFL, 0); + if (fcntl_flags < 0) + return -1; + return (fcntl_flags & O_NONBLOCK) != 0; +} + +int +set_nonblocking_flag (int desc, bool value) +{ + int fcntl_flags; + + fcntl_flags = fcntl (desc, F_GETFL, 0); + if (fcntl_flags < 0) + return -1; + if (((fcntl_flags & O_NONBLOCK) != 0) == value) + return 0; + if (value) + fcntl_flags |= O_NONBLOCK; + else + fcntl_flags &= ~O_NONBLOCK; + return fcntl (desc, F_SETFL, fcntl_flags); +} + +#endif diff --git a/gnulib/import/nonblocking.h b/gnulib/import/nonblocking.h new file mode 100644 index 0000000..8e00fd7 --- /dev/null +++ b/gnulib/import/nonblocking.h @@ -0,0 +1,62 @@ +/* Non-blocking I/O for pipe or socket descriptors. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _NONBLOCKING_H +#define _NONBLOCKING_H + +#include <stdbool.h> + +/* Non-blocking I/O is an I/O mode by which read(), write() calls avoid + blocking the current thread. When non-blocking is enabled: + - A read() call returns -1 with errno set to EAGAIN when no data or EOF + information is immediately available. + - A write() call returns -1 with errno set to EAGAIN when it cannot + transport the requested amount of data (but at most one pipe buffer) + without blocking. + Non-blocking I/O is most useful for character devices, pipes, and sockets. + Whether it also works on regular files and block devices is platform + dependent. + + There are three modern alternatives to non-blocking I/O: + - use select() or poll() followed by read() or write() if the descriptor + is ready, + - call read() or write() in separate threads, + - use <aio.h> interfaces. */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Return 1 if I/O to the descriptor DESC is currently non-blocking, 0 + it is blocking, or -1 with errno set if fd is invalid or blocking + status cannot be determined (such as with sockets on mingw). */ +extern int get_nonblocking_flag (int desc); + +/* Specify the non-blocking flag for the descriptor DESC. + Return 0 upon success, or -1 with errno set upon failure. + The default depends on the presence of the O_NONBLOCK flag for files + or pipes opened with open() or on the presence of the SOCK_NONBLOCK + flag for sockets. */ +extern int set_nonblocking_flag (int desc, bool value); + + +#ifdef __cplusplus +} +#endif + +#endif /* _NONBLOCKING_H */ diff --git a/gnulib/import/sys_ioctl.in.h b/gnulib/import/sys_ioctl.in.h new file mode 100644 index 0000000..7f1cdc8 --- /dev/null +++ b/gnulib/import/sys_ioctl.in.h @@ -0,0 +1,79 @@ +/* Substitute for and wrapper around <sys/ioctl.h>. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_SYS_IOCTL_H@ +# @INCLUDE_NEXT@ @NEXT_SYS_IOCTL_H@ +#endif + +#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H +#define _@GUARD_PREFIX@_SYS_IOCTL_H + +/* AIX 5.1 and Solaris 10 declare ioctl() in <unistd.h> and in <stropts.h>, + but not in <sys/ioctl.h>. + Haiku declares ioctl() in <unistd.h>, but not in <sys/ioctl.h>. + But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include <unistd.h> +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Declare overridden functions. */ + +#if @GNULIB_IOCTL@ +# if @REPLACE_IOCTL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ioctl +# define ioctl rpl_ioctl +# endif +_GL_FUNCDECL_RPL (ioctl, int, + (int fd, int request, ... /* {void *,char *} arg */)); +_GL_CXXALIAS_RPL (ioctl, int, + (int fd, int request, ... /* {void *,char *} arg */)); +# else +# if @SYS_IOCTL_H_HAVE_WINSOCK2_H@ || 1 +_GL_FUNCDECL_SYS (ioctl, int, + (int fd, int request, ... /* {void *,char *} arg */)); +# endif +_GL_CXXALIAS_SYS (ioctl, int, + (int fd, int request, ... /* {void *,char *} arg */)); +# endif +_GL_CXXALIASWARN (ioctl); +#elif @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +# undef ioctl +# define ioctl ioctl_used_without_requesting_gnulib_module_ioctl +#elif defined GNULIB_POSIXCHECK +# undef ioctl +# if HAVE_RAW_DECL_IOCTL +_GL_WARN_ON_USE (ioctl, "ioctl does not portably work on sockets - " + "use gnulib module ioctl for portability"); +# endif +#endif + + +#endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */ +#endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */ diff --git a/gnulib/update-gnulib.sh b/gnulib/update-gnulib.sh index 9b0a955..a675e87 100755 --- a/gnulib/update-gnulib.sh +++ b/gnulib/update-gnulib.sh @@ -60,6 +60,7 @@ IMPORTED_GNULIB_MODULES="\ mkdtemp \ mkostemp \ netdb \ + nonblocking \ pathmax \ rawmemchr \ readlink \ |