diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | locale/programs/locfile.c | 12 | ||||
-rw-r--r-- | sysdeps/mach/hurd/socket.c | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/socketpair.c | 4 |
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; |