* m4/select.m4 (gl_FUNC_SELECT): Determine LIB_SELECT.
* modules/select (Link): Replace $(LIBSOCKET) with $(LIB_SELECT).
* modules/pselect (Link): Likewise.
* NEWS: Mention the change.
* modules/select-tests (Makefile.am): Link test-select, test-select-fd,
test-select-stdin against $(LIB_SELECT).
* modules/pselect-tests (Makefile.am): Link test-pselect against
$(LIB_SELECT).
+2011-09-22 Bruno Haible <bruno@clisp.org>
+
+ select: Avoid link errors on MSVC.
+ * m4/select.m4 (gl_FUNC_SELECT): Determine LIB_SELECT.
+ * modules/select (Link): Replace $(LIBSOCKET) with $(LIB_SELECT).
+ * modules/pselect (Link): Likewise.
+ * NEWS: Mention the change.
+ * modules/select-tests (Makefile.am): Link test-select, test-select-fd,
+ test-select-stdin against $(LIB_SELECT).
+ * modules/pselect-tests (Makefile.am): Link test-pselect against
+ $(LIB_SELECT).
+
2011-09-22 Bruno Haible <bruno@clisp.org>
select: Avoid compilation error on MSVC.
Date Modules Changes
+2011-09-22 select The link requirements of this module are changed
+ from $(LIBSOCKET) to $(LIB_SELECT).
+
2011-09-12 fchdir This module no longer overrides the functions
opendir() and closedir(), unless the modules
'opendir' and 'closedir' are in use, respectively.
-# select.m4 serial 5
+# select.m4 serial 6
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
*) REPLACE_SELECT=1 ;;
esac
fi
+
+ dnl Determine the needed libraries.
+ LIB_SELECT="$LIBSOCKET"
+ if test $REPLACE_SELECT = 1; then
+ case "$host_os" in
+ mingw*)
+ dnl On the MSVC platform, the function MsgWaitForMultipleObjects
+ dnl (used in lib/select.c) requires linking with -luser32. On mingw,
+ dnl it is implicit.
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE([[
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+int
+main ()
+{
+ MsgWaitForMultipleObjects (0, NULL, 0, 0, 0);
+ return 0;
+}]])],
+ [],
+ [LIB_SELECT="$LIB_SELECT -luser32"])
+ ;;
+ esac
+ fi
+ AC_SUBST([LIB_SELECT])
])
<sys/select.h>
Link:
-$(LIBSOCKET) $(LIB_PTHREAD_SIGMASK)
+$(LIB_SELECT) $(LIB_PTHREAD_SIGMASK)
License:
LGPLv2+
Makefile.am:
TESTS += test-pselect
check_PROGRAMS += test-pselect
-test_pselect_LDADD = $(LDADD) @LIBSOCKET@ @LIB_PTHREAD_SIGMASK@ $(INET_PTON_LIB)
+test_pselect_LDADD = $(LDADD) @LIB_SELECT@ @LIBSOCKET@ @LIB_PTHREAD_SIGMASK@ $(INET_PTON_LIB)
<sys/select.h>
Link:
-$(LIBSOCKET)
+$(LIB_SELECT)
License:
LGPLv2+
TESTS += test-select test-select-in.sh test-select-out.sh
# test-select-stdin has to be run by hand.
check_PROGRAMS += test-select test-select-fd test-select-stdin
-test_select_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
-test_select_fd_LDADD = $(LDADD) @LIBSOCKET@
-test_select_stdin_LDADD = $(LDADD) @LIBSOCKET@
+test_select_LDADD = $(LDADD) @LIB_SELECT@ @LIBSOCKET@ $(INET_PTON_LIB)
+test_select_fd_LDADD = $(LDADD) @LIB_SELECT@
+test_select_stdin_LDADD = $(LDADD) @LIB_SELECT@