diff options
Diffstat (limited to 'sysdeps/posix/readv.c')
-rw-r--r-- | sysdeps/posix/readv.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/posix/readv.c b/sysdeps/posix/readv.c index bb6634529d..bde57b44fa 100644 --- a/sysdeps/posix/readv.c +++ b/sysdeps/posix/readv.c @@ -30,7 +30,7 @@ Operates just like `read' (see <unistd.h>) except that data are put in VECTOR instead of a contiguous buffer. */ ssize_t -__readv (int fd, const struct iovec *vector, int count) +__libc_readv (int fd, const struct iovec *vector, int count) { char *buffer; char *buffer_start; @@ -55,8 +55,8 @@ __readv (int fd, const struct iovec *vector, int count) /* Allocate a temporary buffer to hold the data. We should normally use alloca since it's faster and does not require synchronization with other threads. But we cannot if the amount of memory - required is too large. Use 512k as the limit. */ - if (bytes < 512 * 1024) + required is too large. */ + if (__libc_use_alloca (bytes)) buffer = (char *) __alloca (bytes); else { @@ -94,6 +94,7 @@ __readv (int fd, const struct iovec *vector, int count) return bytes_read; } -#ifndef __readv -weak_alias (__readv, readv) +#ifndef __libc_readv +strong_alias (__libc_readv, __readv) +weak_alias (__libc_readv, readv) #endif |