This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix posix_fadvise on powerpc32


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

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]