Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 370656 Details for
Bug 500382
sys-libs/uclibc: pread/pwrite do not work on arm (breaks dev-vcs/git)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
ad hoc fix for non-atomic pread/write on armv7a-uclibc.
pread_write-use-syscall6.patch (text/plain), 2.39 KB, created by
Anthony Basile
on 2014-02-17 22:15:12 UTC
(
hide
)
Description:
ad hoc fix for non-atomic pread/write on armv7a-uclibc.
Filename:
MIME Type:
Creator:
Anthony Basile
Created:
2014-02-17 22:15:12 UTC
Size:
2.39 KB
patch
obsolete
>diff -Naur uClibc-0.9.33.2.orig/libc/sysdeps/linux/common/pread_write.c uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c >--- uClibc-0.9.33.2.orig/libc/sysdeps/linux/common/pread_write.c 2014-02-17 21:58:37.700039157 +0000 >+++ uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c 2014-02-17 21:59:25.875039179 +0000 >@@ -29,13 +29,13 @@ > #include <bits/kernel_types.h> > > # define __NR___syscall_pread __NR_pread64 >-static __inline__ _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, >- size_t, count, off_t, offset_hi, off_t, offset_lo) >+static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf, >+ size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo) > > ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset) > { > int oldtype = LIBC_CANCEL_ASYNC (); >- int result = __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset)); >+ int result = __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)); > LIBC_CANCEL_RESET (oldtype); > return result; > >@@ -48,7 +48,7 @@ > uint32_t low = offset & 0xffffffff; > uint32_t high = offset >> 32; > int oldtype = LIBC_CANCEL_ASYNC (); >- int result = __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(high, low)); >+ int result = __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(high, low)); > LIBC_CANCEL_RESET (oldtype); > return result; > } >@@ -56,13 +56,13 @@ > # endif /* __UCLIBC_HAS_LFS__ */ > > # define __NR___syscall_pwrite __NR_pwrite64 >-static __inline__ _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf, >- size_t, count, off_t, offset_hi, off_t, offset_lo) >+static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf, >+ size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo) > > ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset) > { > int oldtype = LIBC_CANCEL_ASYNC (); >- int result = __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset)); >+ int result = __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)); > LIBC_CANCEL_RESET (oldtype); > return result; > } >@@ -74,7 +74,7 @@ > uint32_t low = offset & 0xffffffff; > uint32_t high = offset >> 32; > int oldtype = LIBC_CANCEL_ASYNC (); >- int result = __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(high, low)); >+ int result = __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(high, low)); > LIBC_CANCEL_RESET (oldtype); > return result; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 500382
:
369614
|
369626
| 370656