summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2011-09-23 21:38:44 +0200
committerBruno Haible <bruno@clisp.org>2011-09-23 21:38:44 +0200
commit9b604b4cbfad7422bacc1c723df1d027b6a7c738 (patch)
tree8299ebfd0839d14f62eb4c89e650d9623eeba157 /modules
parentfeb7da5e51db75738e91cce135c1906f7dc10948 (diff)
downloadgnulib-9b604b4cbfad7422bacc1c723df1d027b6a7c738.tar.gz
New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
* lib/msvc-nothrow.h: New file. * lib/msvc-nothrow.c: New file. * m4/msvc-nothrow.m4: New file. * modules/msvc-nothrow: New file. * lib/dup2.c: Include msvc-nothrow.h. (rpl_dup2): No need to protect _get_osfhandle call here. * lib/accept4.c: Include msvc-nothrow.h. * lib/error.c: Likewise. * lib/fcntl.c: Likewise. * lib/lseek.c: Likewise. * lib/nonblocking.c: Likewise. * lib/poll.c: Likewise. * lib/read.c: Likewise. * lib/select.c: Likewise. * lib/sockets.h: Likewise. * lib/sockets.c: Likewise. * lib/stdio-read.c: Likewise. * lib/stdio-write.c: Likewise. * lib/write.c: Likewise. * lib/w32sock.h: Likewise. * lib/w32spawn.h: Likewise. * lib/flock.c: Include msvc-nothrow.h instead of <io.h>. * lib/fsync.c: Likewise. * lib/isapipe.c: Likewise. * modules/dup2 (Depends-on): Add msvc-nothrow. * modules/accept4 (Depends-on): Likewise. * modules/error (Depends-on): Likewise. * modules/fcntl (Depends-on): Likewise. * modules/lseek (Depends-on): Likewise. * modules/nonblocking (Depends-on): Likewise. * modules/poll (Depends-on): Likewise. * modules/read (Depends-on): Likewise. * modules/select (Depends-on): Likewise. * modules/sockets (Depends-on): Likewise. * modules/sigpipe (Depends-on): Likewise. * modules/write (Depends-on): Likewise. * modules/accept (Depends-on): Likewise. * modules/bind (Depends-on): Likewise. * modules/connect (Depends-on): Likewise. * modules/gethostname (Depends-on): Likewise. * modules/getpeername (Depends-on): Likewise. * modules/getsockname (Depends-on): Likewise. * modules/getsockopt (Depends-on): Likewise. * modules/ioctl (Depends-on): Likewise. * modules/listen (Depends-on): Likewise. * modules/recv (Depends-on): Likewise. * modules/recvfrom (Depends-on): Likewise. * modules/send (Depends-on): Likewise. * modules/sendto (Depends-on): Likewise. * modules/setsockopt (Depends-on): Likewise. * modules/shutdown (Depends-on): Likewise. * modules/socket (Depends-on): Likewise. * modules/execute (Depends-on): Likewise. * modules/spawn-pipe (Depends-on): Likewise. * modules/flock (Depends-on): Likewise. * modules/fsync (Depends-on): Likewise. * modules/isapipe (Depends-on): Likewise. * tests/test-cloexec.c: Include msvc-nothrow.h. * tests/test-dup-safer.c: Likewise. * tests/test-dup2.c: Likewise. * tests/test-dup3.c: Likewise. * tests/test-fcntl.c: Likewise. * tests/test-pipe.c: Likewise. * tests/test-pipe2.c: Likewise. * modules/cloexec-tests (Depends-on): Add msvc-nothrow. * modules/unistd-safer-tests (Depends-on): Likewise. * modules/dup2-tests (Depends-on): Likewise. * modules/dup3-tests (Depends-on): Likewise. * modules/fcntl-tests (Depends-on): Likewise. * modules/pipe-posix-tests (Depends-on): Likewise. * modules/pipe2-tests (Depends-on): Likewise.
Diffstat (limited to 'modules')
-rw-r--r--modules/accept1
-rw-r--r--modules/accept41
-rw-r--r--modules/bind1
-rw-r--r--modules/cloexec-tests1
-rw-r--r--modules/connect1
-rw-r--r--modules/dup21
-rw-r--r--modules/dup2-tests1
-rw-r--r--modules/dup3-tests1
-rw-r--r--modules/error1
-rw-r--r--modules/execute1
-rw-r--r--modules/fcntl1
-rw-r--r--modules/fcntl-tests1
-rw-r--r--modules/flock1
-rw-r--r--modules/fsync1
-rw-r--r--modules/gethostname1
-rw-r--r--modules/getpeername1
-rw-r--r--modules/getsockname1
-rw-r--r--modules/getsockopt1
-rw-r--r--modules/ioctl1
-rw-r--r--modules/isapipe1
-rw-r--r--modules/listen1
-rw-r--r--modules/lseek1
-rw-r--r--modules/msvc-nothrow28
-rw-r--r--modules/nonblocking1
-rw-r--r--modules/pipe-posix-tests1
-rw-r--r--modules/pipe2-tests1
-rw-r--r--modules/poll1
-rw-r--r--modules/read1
-rw-r--r--modules/recv1
-rw-r--r--modules/recvfrom1
-rw-r--r--modules/select1
-rw-r--r--modules/send1
-rw-r--r--modules/sendto1
-rw-r--r--modules/setsockopt1
-rw-r--r--modules/shutdown1
-rw-r--r--modules/sigpipe1
-rw-r--r--modules/socket1
-rw-r--r--modules/sockets1
-rw-r--r--modules/spawn-pipe1
-rw-r--r--modules/unistd-safer-tests1
-rw-r--r--modules/write1
41 files changed, 68 insertions, 0 deletions
diff --git a/modules/accept b/modules/accept
index 6421e92d5e..059a56d299 100644
--- a/modules/accept
+++ b/modules/accept
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/accept4 b/modules/accept4
index e6b9994152..e9319763cb 100644
--- a/modules/accept4
+++ b/modules/accept4
@@ -12,6 +12,7 @@ accept
fcntl-h
binary-io
extensions
+msvc-nothrow
configure.ac:
gl_FUNC_ACCEPT4
diff --git a/modules/bind b/modules/bind
index dd211d45a1..e46bd267a7 100644
--- a/modules/bind
+++ b/modules/bind
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/cloexec-tests b/modules/cloexec-tests
index 3a76b9e9a3..524716c92e 100644
--- a/modules/cloexec-tests
+++ b/modules/cloexec-tests
@@ -4,6 +4,7 @@ tests/macros.h
Depends-on:
binary-io
+msvc-nothrow
configure.ac:
diff --git a/modules/connect b/modules/connect
index d5958434e2..c77632ca61 100644
--- a/modules/connect
+++ b/modules/connect
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/dup2 b/modules/dup2
index 2317db3cdf..2ad65d1dc1 100644
--- a/modules/dup2
+++ b/modules/dup2
@@ -9,6 +9,7 @@ Depends-on:
unistd
dup2-obsolete
msvc-inval [test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1]
+msvc-nothrow [test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1]
configure.ac:
gl_FUNC_DUP2
diff --git a/modules/dup2-tests b/modules/dup2-tests
index a973fd75e5..8277e3b170 100644
--- a/modules/dup2-tests
+++ b/modules/dup2-tests
@@ -5,6 +5,7 @@ tests/macros.h
Depends-on:
binary-io
+msvc-nothrow
open
configure.ac:
diff --git a/modules/dup3-tests b/modules/dup3-tests
index 26dd5d89aa..02f422e845 100644
--- a/modules/dup3-tests
+++ b/modules/dup3-tests
@@ -4,6 +4,7 @@ tests/signature.h
tests/macros.h
Depends-on:
+msvc-nothrow
open
configure.ac:
diff --git a/modules/error b/modules/error
index ae12b45ad4..f8676176b1 100644
--- a/modules/error
+++ b/modules/error
@@ -14,6 +14,7 @@ m4/error.m4
Depends-on:
strerror [test $ac_cv_lib_error_at_line = no]
unistd [test $ac_cv_lib_error_at_line = no]
+msvc-nothrow [test $ac_cv_lib_error_at_line = no]
configure.ac:
gl_ERROR
diff --git a/modules/execute b/modules/execute
index a65696bb53..f4584ab1a9 100644
--- a/modules/execute
+++ b/modules/execute
@@ -14,6 +14,7 @@ error
fatal-signal
wait-process
gettext-h
+msvc-nothrow
spawn
posix_spawnp
posix_spawn_file_actions_init
diff --git a/modules/fcntl b/modules/fcntl
index 4c30e9e4ab..ab7c8ad6b9 100644
--- a/modules/fcntl
+++ b/modules/fcntl
@@ -10,6 +10,7 @@ fcntl-h
extensions
dup2 [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1]
getdtablesize [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1]
+msvc-nothrow [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1]
configure.ac:
gl_FUNC_FCNTL
diff --git a/modules/fcntl-tests b/modules/fcntl-tests
index 44b040c251..72705801e5 100644
--- a/modules/fcntl-tests
+++ b/modules/fcntl-tests
@@ -6,6 +6,7 @@ tests/macros.h
Depends-on:
binary-io
getdtablesize
+msvc-nothrow
stdbool
configure.ac:
diff --git a/modules/flock b/modules/flock
index 56ef9b2645..73d27c6221 100644
--- a/modules/flock
+++ b/modules/flock
@@ -7,6 +7,7 @@ m4/flock.m4
Depends-on:
sys_file
+msvc-nothrow [test $HAVE_FLOCK = 0]
configure.ac:
gl_FUNC_FLOCK
diff --git a/modules/fsync b/modules/fsync
index 0f5b3fc793..660eb59bc0 100644
--- a/modules/fsync
+++ b/modules/fsync
@@ -7,6 +7,7 @@ m4/fsync.m4
Depends-on:
unistd
+msvc-nothrow [test $HAVE_FSYNC = 0]
configure.ac:
gl_FUNC_FSYNC
diff --git a/modules/gethostname b/modules/gethostname
index 42ee838e09..b41dfad9a7 100644
--- a/modules/gethostname
+++ b/modules/gethostname
@@ -11,6 +11,7 @@ unistd
sys_socket [test $HAVE_GETHOSTNAME = 0]
errno [test $HAVE_GETHOSTNAME = 0]
sockets [test $HAVE_GETHOSTNAME = 0]
+msvc-nothrow [test $HAVE_GETHOSTNAME = 0]
configure.ac:
gl_FUNC_GETHOSTNAME
diff --git a/modules/getpeername b/modules/getpeername
index b7f04ee28f..d1ef822724 100644
--- a/modules/getpeername
+++ b/modules/getpeername
@@ -10,6 +10,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/getsockname b/modules/getsockname
index 033c170820..15cf490ca7 100644
--- a/modules/getsockname
+++ b/modules/getsockname
@@ -10,6 +10,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/getsockopt b/modules/getsockopt
index d13e064edb..1cd1f2e12b 100644
--- a/modules/getsockopt
+++ b/modules/getsockopt
@@ -10,6 +10,7 @@ sys_socket
socketlib
sys_time [test "$ac_cv_header_winsock2_h" = yes]
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/ioctl b/modules/ioctl
index 9842a53f97..ba4a85a32e 100644
--- a/modules/ioctl
+++ b/modules/ioctl
@@ -11,6 +11,7 @@ sys_ioctl
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:
gl_FUNC_IOCTL
diff --git a/modules/isapipe b/modules/isapipe
index cc62ea8ce7..945df3ed8a 100644
--- a/modules/isapipe
+++ b/modules/isapipe
@@ -10,6 +10,7 @@ Depends-on:
stdbool [test $HAVE_ISAPIPE = 0]
sys_stat [test $HAVE_ISAPIPE = 0]
unistd [test $HAVE_ISAPIPE = 0]
+msvc-nothrow [test $HAVE_ISAPIPE = 0]
configure.ac:
gl_ISAPIPE
diff --git a/modules/listen b/modules/listen
index 8aff376c32..baaadc21ad 100644
--- a/modules/listen
+++ b/modules/listen
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/lseek b/modules/lseek
index 0fc7923f65..c43027354c 100644
--- a/modules/lseek
+++ b/modules/lseek
@@ -8,6 +8,7 @@ m4/lseek.m4
Depends-on:
unistd
largefile
+msvc-nothrow [test $REPLACE_LSEEK = 1]
configure.ac:
gl_FUNC_LSEEK
diff --git a/modules/msvc-nothrow b/modules/msvc-nothrow
new file mode 100644
index 0000000000..46d71aae48
--- /dev/null
+++ b/modules/msvc-nothrow
@@ -0,0 +1,28 @@
+Description:
+wrappers that don't throw invalid parameter notifications with MSVC runtime
+libraries
+
+Files:
+lib/msvc-nothrow.h
+lib/msvc-nothrow.c
+m4/msvc-nothrow.m4
+
+Depends-on:
+msvc-inval
+
+configure.ac:
+gl_MSVC_NOTHROW
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ AC_LIBOBJ([msvc-nothrow])
+fi
+
+Makefile.am:
+
+Include:
+"msvc-nothrow.h"
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible
diff --git a/modules/nonblocking b/modules/nonblocking
index 2d469ebaa4..96881f5b58 100644
--- a/modules/nonblocking
+++ b/modules/nonblocking
@@ -12,6 +12,7 @@ m4/asm-underscore.m4
Depends-on:
fcntl-h
ioctl
+msvc-nothrow
stdbool
stdio
sys_socket
diff --git a/modules/pipe-posix-tests b/modules/pipe-posix-tests
index 7afafdc504..3f428a0613 100644
--- a/modules/pipe-posix-tests
+++ b/modules/pipe-posix-tests
@@ -6,6 +6,7 @@ tests/macros.h
Depends-on:
stdbool
binary-io
+msvc-nothrow
configure.ac:
diff --git a/modules/pipe2-tests b/modules/pipe2-tests
index 2e6c3f78a7..74f9d5f3e3 100644
--- a/modules/pipe2-tests
+++ b/modules/pipe2-tests
@@ -5,6 +5,7 @@ tests/macros.h
Depends-on:
stdbool
+msvc-nothrow
configure.ac:
diff --git a/modules/poll b/modules/poll
index f1f22bfd81..37143320ea 100644
--- a/modules/poll
+++ b/modules/poll
@@ -12,6 +12,7 @@ select [test $HAVE_POLL = 0 || test $REPLACE_POLL = 1]
sys_select [test $HAVE_POLL = 0 || test $REPLACE_POLL = 1]
sys_time [test $HAVE_POLL = 0 || test $REPLACE_POLL = 1]
errno [test $HAVE_POLL = 0 || test $REPLACE_POLL = 1]
+msvc-nothrow [test $HAVE_POLL = 0 || test $REPLACE_POLL = 1]
configure.ac:
gl_FUNC_POLL
diff --git a/modules/read b/modules/read
index 12d97c75fb..d725955837 100644
--- a/modules/read
+++ b/modules/read
@@ -7,6 +7,7 @@ m4/read.m4
Depends-on:
unistd
+msvc-nothrow [test $REPLACE_READ = 1]
configure.ac:
gl_FUNC_READ
diff --git a/modules/recv b/modules/recv
index 731717bc3a..b47d8f532f 100644
--- a/modules/recv
+++ b/modules/recv
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/recvfrom b/modules/recvfrom
index c4749ae45d..2b051b461d 100644
--- a/modules/recvfrom
+++ b/modules/recvfrom
@@ -10,6 +10,7 @@ sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
getpeername [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/select b/modules/select
index f665740b03..7b25a8bc9c 100644
--- a/modules/select
+++ b/modules/select
@@ -9,6 +9,7 @@ Depends-on:
sys_select
alloca [test $REPLACE_SELECT = 1]
sockets [test $REPLACE_SELECT = 1]
+msvc-nothrow [test $REPLACE_SELECT = 1]
configure.ac:
gl_FUNC_SELECT
diff --git a/modules/send b/modules/send
index 18d6c0d14f..5e115c3f85 100644
--- a/modules/send
+++ b/modules/send
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/sendto b/modules/sendto
index 847699de42..924818e313 100644
--- a/modules/sendto
+++ b/modules/sendto
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/setsockopt b/modules/setsockopt
index 0b4ae49550..bfe8acdae9 100644
--- a/modules/setsockopt
+++ b/modules/setsockopt
@@ -10,6 +10,7 @@ sys_socket
socketlib
sys_time [test "$ac_cv_header_winsock2_h" = yes]
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/shutdown b/modules/shutdown
index 7c76ba5319..32845dbc87 100644
--- a/modules/shutdown
+++ b/modules/shutdown
@@ -9,6 +9,7 @@ Depends-on:
sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/sigpipe b/modules/sigpipe
index 4f03c9e14a..d28a562afe 100644
--- a/modules/sigpipe
+++ b/modules/sigpipe
@@ -12,6 +12,7 @@ lib/stdio-write.c
m4/asm-underscore.m4
Depends-on:
+msvc-nothrow
raise
signal
sigprocmask
diff --git a/modules/socket b/modules/socket
index 6a056e423c..49625494ab 100644
--- a/modules/socket
+++ b/modules/socket
@@ -10,6 +10,7 @@ sys_socket
socketlib
errno [test "$ac_cv_header_winsock2_h" = yes]
sockets [test "$ac_cv_header_winsock2_h" = yes]
+msvc-nothrow [test "$ac_cv_header_winsock2_h" = yes]
configure.ac:
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
diff --git a/modules/sockets b/modules/sockets
index fe9292631c..b6dffabc1d 100644
--- a/modules/sockets
+++ b/modules/sockets
@@ -11,6 +11,7 @@ Depends-on:
socketlib
sys_socket
fd-hook
+msvc-nothrow
configure.ac:
gl_SOCKETS
diff --git a/modules/spawn-pipe b/modules/spawn-pipe
index 9898b37598..bcb0c9d253 100644
--- a/modules/spawn-pipe
+++ b/modules/spawn-pipe
@@ -14,6 +14,7 @@ environ
error
fatal-signal
gettext-h
+msvc-nothrow
open
pipe2
pipe2-safer
diff --git a/modules/unistd-safer-tests b/modules/unistd-safer-tests
index cc4b97ab3b..d8519a6562 100644
--- a/modules/unistd-safer-tests
+++ b/modules/unistd-safer-tests
@@ -6,6 +6,7 @@ Depends-on:
binary-io
cloexec
fd-safer-flag
+msvc-nothrow
stdbool
configure.ac:
diff --git a/modules/write b/modules/write
index d60b5a7f67..c19f73b7ed 100644
--- a/modules/write
+++ b/modules/write
@@ -8,6 +8,7 @@ m4/write.m4
Depends-on:
unistd
raise [test $REPLACE_WRITE = 1]
+msvc-nothrow [test $REPLACE_WRITE = 1]
configure.ac:
gl_FUNC_WRITE