Fix posix_fadvise on powerpc32
Andreas Jaeger
aj@suse.de
Mon Aug 25 08:21:00 GMT 2003
building glibc on powerpc fails with:
../sysdeps/unix/sysv/linux/posix_fadvise64.c:54: undefined reference to `__illeg
ally_sized_syscall_fadvise64_arg2'
/usr/src/packages/BUILD/glibc-2.3/cc/libc_pic.os(.text+0xbcce8):../sysdeps/unix/
sysv/linux/posix_fadvise64.c:54: undefined reference to `__illegally_sized_sysca
ll_fadvise64_arg3'
I think we need to cast the arguments to LONG_LONG_PAIR to long.
Ok to commit the appended patches?
Andreas
2003-08-25 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/posix_fadvise.c (posix_fadvise): Cast
arguments of __LONG_LONG_PAIR to long.
* sysdeps/unix/sysv/linux/posix_fadvise64.c (__posix_fadvise64_l64): Likewise.
============================================================
Index: sysdeps/unix/sysv/linux/posix_fadvise.c
--- sysdeps/unix/sysv/linux/posix_fadvise.c 17 Aug 2003 00:36:22 -0000 1.3
+++ sysdeps/unix/sysv/linux/posix_fadvise.c 25 Aug 2003 08:19:40 -0000
@@ -29,7 +29,7 @@ posix_fadvise (int fd, off_t offset, off
#ifdef __NR_fadvise64
INTERNAL_SYSCALL_DECL (err);
int ret = INTERNAL_SYSCALL (fadvise64, err, 5, fd,
- __LONG_LONG_PAIR (offset >> 31, offset), len,
+ __LONG_LONG_PAIR ((long)offset >> 31, (long)offset), len,
advise);
if (INTERNAL_SYSCALL_ERROR_P (ret, err))
return INTERNAL_SYSCALL_ERRNO (ret, err);
============================================================
Index: sysdeps/unix/sysv/linux/posix_fadvise64.c
--- sysdeps/unix/sysv/linux/posix_fadvise64.c 17 Aug 2003 00:36:42 -0000 1.1
+++ sysdeps/unix/sysv/linux/posix_fadvise64.c 25 Aug 2003 08:19:40 -0000
@@ -33,8 +33,8 @@ __posix_fadvise64_l64 (int fd, off64_t o
#ifdef __NR_fadvise64_64
INTERNAL_SYSCALL_DECL (err);
int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
- __LONG_LONG_PAIR (offset >> 32, offset),
- __LONG_LONG_PAIR (len >> 32, len),
+ __LONG_LONG_PAIR ((long)offset >> 32, (long)offset),
+ __LONG_LONG_PAIR ((long)len >> 32, (long)len),
advise);
if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
return 0;
@@ -50,7 +50,7 @@ __posix_fadvise64_l64 (int fd, off64_t o
INTERNAL_SYSCALL_DECL (err2);
int ret2 = INTERNAL_SYSCALL (fadvise64, err2, 5, fd,
- __LONG_LONG_PAIR (offset >> 32, offset),
+ __LONG_LONG_PAIR ((long)offset >> 32, (long)offset),
(off_t) len, advise);
if (!INTERNAL_SYSCALL_ERROR_P (ret2, err2))
return 0;
--
Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-hacker/attachments/20030825/c7ccdf57/attachment.sig>
More information about the Libc-hacker
mailing list