diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2019-05-10 07:23:53 -0700 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2019-05-13 09:11:02 +0200 |
commit | 423e49023eeb9b93dcf335d7b03e86a44e584dc8 (patch) | |
tree | 0397d840dc6e651ee10923f8756e8f3d71a5ea91 | |
parent | b56bd489812c685819bdec6d83f7990f21473be8 (diff) |
preadv/pwritev: fix offset argument type
preadv/pwritev don't provide separate version for 64-bit wide off_t,
and default to 32-bit wide off_t, which results in a mismatch between
declaration and definition for user programs built with
-D_FILE_OFFSET_BITS=64.
Make offset argument of both functions __off64_t.
This fixes test misc/tst-preadvwritev on xtensa.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-rw-r--r-- | include/sys/uio.h | 4 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/preadv.c | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/pwritev.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/include/sys/uio.h b/include/sys/uio.h index aa766f9b1..330426fec 100644 --- a/include/sys/uio.h +++ b/include/sys/uio.h @@ -59,7 +59,7 @@ extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count); This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count, - off_t __offset) __wur; + __off64_t __offset) __wur; /* Write data pointed by the buffers described by IOVEC, which is a vector of COUNT 'struct iovec's, to file descriptor FD at the given @@ -71,7 +71,7 @@ extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count, This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count, - off_t __offset) __wur; + __off64_t __offset) __wur; #endif /* Use misc. */ __END_DECLS diff --git a/libc/sysdeps/linux/common/preadv.c b/libc/sysdeps/linux/common/preadv.c index fd9dde4b9..6a07d5df8 100644 --- a/libc/sysdeps/linux/common/preadv.c +++ b/libc/sysdeps/linux/common/preadv.c @@ -21,7 +21,7 @@ #ifdef __NR_preadv ssize_t -preadv (int fd, const struct iovec *vector, int count, off_t offset) +preadv (int fd, const struct iovec *vector, int count, __off64_t offset) { unsigned long pos_l, pos_h; diff --git a/libc/sysdeps/linux/common/pwritev.c b/libc/sysdeps/linux/common/pwritev.c index bef5bcf69..f07c40e6d 100644 --- a/libc/sysdeps/linux/common/pwritev.c +++ b/libc/sysdeps/linux/common/pwritev.c @@ -21,7 +21,7 @@ #ifdef __NR_pwritev ssize_t -pwritev (int fd, const struct iovec *vector, int count, off_t offset) +pwritev (int fd, const struct iovec *vector, int count, __off64_t offset) { unsigned long pos_l, pos_h; |