summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-07-21 06:52:29 +0000
committerMiles Bader <miles@gnu.org>1996-07-21 06:52:29 +0000
commitc199a24feb079bf0f81f8cedcfe55e99c47ac415 (patch)
tree7faeed37f8ab18c8e9760e64d5d00935171623c5
parent6f9561ed067bb4eed53ec4872fe773c64a2df1c5 (diff)
downloadglibc-c199a24feb079bf0f81f8cedcfe55e99c47ac415.tar.gz
Sun Jul 21 01:44:39 1996 Miles Bader <miles@gnu.ai.mit.edu>cvs/libc-960721
* locale/programs/locfile.c (write_locale_data): Deal with missing UIO_MAXIOV. * sysdeps/mach/hurd/socket.c (socket): Make TYPE an int. * sysdeps/mach/hurd/socketpair.c (socketpair): Likewise.
-rw-r--r--ChangeLog8
-rw-r--r--locale/programs/locfile.c12
-rw-r--r--sysdeps/mach/hurd/socket.c4
-rw-r--r--sysdeps/mach/hurd/socketpair.c4
4 files changed, 22 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 84b0863c37..2c9785c4fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Sun Jul 21 01:44:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * locale/programs/locfile.c (write_locale_data): Deal with missing
+ UIO_MAXIOV.
+
+ * sysdeps/mach/hurd/socket.c (socket): Make TYPE an int.
+ * sysdeps/mach/hurd/socketpair.c (socketpair): Likewise.
+
Sat Jul 20 13:28:52 1996 Miles Bader <miles@gnu.ai.mit.edu>
* sysdeps/mach/hurd/select.c (__select): Don't poll on the last
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index e225e577d6..69d976160b 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -931,7 +931,7 @@ void
write_locale_data (const char *output_path, const char *category,
size_t n_elem, struct iovec *vec)
{
- size_t cnt, step;
+ size_t cnt, step, maxiov;
int fd;
char *fname;
@@ -959,11 +959,19 @@ write_locale_data (const char *output_path, const char *category,
}
free (fname);
+#ifdef UIO_MAXIOV
+ maxiov = UIO_MAXIOV;
+#else
+ maxiov = sysconf (_SC_UIO_MAXIOV);
+#endif
+
/* Write the data using writev. But we must take care for the
limitation of the implementation. */
for (cnt = 0; cnt < n_elem; cnt += step)
{
- step = MIN (UIO_MAXIOV, n_elem - cnt);
+ step = n_elem - cnt;
+ if (maxiov > 0)
+ step = MIN (maxiov, step);
if (writev (fd, &vec[cnt], step) < 0)
{
diff --git a/sysdeps/mach/hurd/socket.c b/sysdeps/mach/hurd/socket.c
index 282c24e36b..423e8fe8b1 100644
--- a/sysdeps/mach/hurd/socket.c
+++ b/sysdeps/mach/hurd/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@ Cambridge, MA 02139, USA. */
Returns a file descriptor for the new socket, or -1 for errors. */
int
DEFUN(socket, (domain, type, protocol),
- int domain AND enum __socket_type type AND int protocol)
+ int domain AND int type AND int protocol)
{
error_t err;
socket_t sock, server;
diff --git a/sysdeps/mach/hurd/socketpair.c b/sysdeps/mach/hurd/socketpair.c
index 951d535504..4e29ed81d1 100644
--- a/sysdeps/mach/hurd/socketpair.c
+++ b/sysdeps/mach/hurd/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,7 +31,7 @@ Cambridge, MA 02139, USA. */
one will be chosen automatically. Returns 0 on success, -1 for errors. */
int
DEFUN(socketpair, (domain, type, protocol, fds),
- int domain AND enum __socket_type type AND int protocol AND int fds[2])
+ int domain AND int type AND int protocol AND int fds[2])
{
error_t err;
socket_t server, sock1, sock2;