As preadv and pwritev accept off_t type the prototypes should be declared
as follows

extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count,
                       off_t __offset) __wur;


extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count,
                        off_t __offset) __wur;

to take into account _FILE_OFFSET_BITS=64 define.

I am not sure but probably it is better to redeclare these prototypes
by analogy with sendfile using __REDIRECT_NTH.
From 12347ece4b48c81a1db80eec660fc7ec7c542c19 Mon Sep 17 00:00:00 2001
From: Vlad Starodubtsev <v.starodubt...@ndmsystems.com>
Date: Thu, 26 Oct 2017 17:22:33 +0300
Subject: [PATCH] Fix prototypes for preadv pwritev.

---
 include/sys/uio.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/sys/uio.h b/include/sys/uio.h
index 78341ed40..aa766f9b1 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;
+		       off_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;
+			off_t __offset) __wur;
 #endif	/* Use misc.  */
 
 __END_DECLS
-- 
2.17.1

_______________________________________________
devel mailing list
devel@uclibc-ng.org
https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to