Merge commit 'a39d4083cab589d7cd6a13e8a4b8db8875261d75'
[gnulib.git] / modules / ioctl
index 2ad0b7a..ba4a85a 100644 (file)
@@ -4,41 +4,19 @@ ioctl() function: issue device specific requests on files, devices, or sockets.
 Files:
 lib/ioctl.c
 lib/w32sock.h
+m4/ioctl.m4
 
 Depends-on:
 sys_ioctl
-sys_socket
-errno
+sys_socket      [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
+errno           [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
+fd-hook         [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
+msvc-nothrow    [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
 
 configure.ac:
-AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-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.
+gl_FUNC_IOCTL
+if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
   AC_LIBOBJ([ioctl])
-  gl_REPLACE_SYS_IOCTL_H
-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>]],
-          [[extern 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
-    AC_LIBOBJ([ioctl])
-    gl_REPLACE_SYS_IOCTL_H
-  fi
 fi
 gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])