* [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type
@ 2019-05-13 18:48 Max Filippov
2019-05-14 16:58 ` Thomas Petazzoni
2019-05-26 11:53 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Max Filippov @ 2019-05-13 18:48 UTC (permalink / raw)
To: buildroot
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type
2019-05-13 18:48 [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type Max Filippov
@ 2019-05-14 16:58 ` Thomas Petazzoni
2019-05-26 11:53 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2019-05-14 16:58 UTC (permalink / raw)
To: buildroot
Hello Max,
Thanks for the patch and all the investigation around this issue!
On Mon, 13 May 2019 11:48:11 -0700
Max Filippov <jcmvbkbc@gmail.com> wrote:
> 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")
This Backported tag is not really relevant inside the Buildroot commit
log: indeed it refers to an upstream uClibc-ng commit. So I have moved
this line...
> 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.
> +
... here.
> +Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
And applied to master. Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type
2019-05-13 18:48 [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type Max Filippov
2019-05-14 16:58 ` Thomas Petazzoni
@ 2019-05-26 11:53 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2019-05-26 11:53 UTC (permalink / raw)
To: buildroot
>>>>> "Max" == Max Filippov <jcmvbkbc@gmail.com> writes:
> 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>
Committed to 2019.02.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-05-26 11:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-13 18:48 [Buildroot] [PATCH] package/uclibc: fix preadv/pwritev offset argument type Max Filippov
2019-05-14 16:58 ` Thomas Petazzoni
2019-05-26 11:53 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox