All of lore.kernel.org
 help / color / mirror / Atom feed
From: Max Filippov <jcmvbkbc@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type
Date: Mon, 13 May 2019 11:48:11 -0700	[thread overview]
Message-ID: <20190513184811.20461-1-jcmvbkbc@gmail.com> (raw)

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.

Backported from: 423e49023eeb ("preadv/pwritev: fix offset argument type")
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
 ...3-preadv-pwritev-fix-offset-argument-type.patch | 70 ++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 package/uclibc/0003-preadv-pwritev-fix-offset-argument-type.patch

diff --git a/package/uclibc/0003-preadv-pwritev-fix-offset-argument-type.patch b/package/uclibc/0003-preadv-pwritev-fix-offset-argument-type.patch
new file mode 100644
index 000000000000..2a20aecc8d20
--- /dev/null
+++ b/package/uclibc/0003-preadv-pwritev-fix-offset-argument-type.patch
@@ -0,0 +1,70 @@
+From 1077d5bebffacfd4b09896ed890fb45a5b3c6dc6 Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Fri, 10 May 2019 07:13:19 -0700
+Subject: [PATCH] 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>
+---
+ include/sys/uio.h                   | 4 ++--
+ libc/sysdeps/linux/common/preadv.c  | 2 +-
+ 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 aa766f9b1187..330426fec492 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 fd9dde4b999c..6a07d5df87e0 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 bef5bcf69b46..f07c40e6de3c 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;
+ 
+-- 
+2.11.0
+
-- 
2.11.0

             reply	other threads:[~2019-05-13 18:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-13 18:48 Max Filippov [this message]
2019-05-14 16:58 ` [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type Thomas Petazzoni
2019-05-26 11:53 ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190513184811.20461-1-jcmvbkbc@gmail.com \
    --to=jcmvbkbc@gmail.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.