Fix posix_fadvise on powerpc32

Ulrich Drepper drepper@redhat.com
Mon Aug 25 18:40:00 GMT 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andreas Jaeger wrote:

> ============================================================
> 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),

This code isn't correct either.  The cast has a higher precedence than
the shift.  You'll always get zeor as the result.

- -- 
- --------------.                        ,-.            444 Castro Street
Ulrich Drepper \    ,-----------------'   \ Mountain View, CA 94041 USA
Red Hat         `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE/SlgX2ijCOnn/RHQRAtLnAKCXRWiLFch5VJEa42XNHbAz6Z8HdwCgpa/R
BDb3EpjkGLRLnbjHIPY4FBI=
=WxFz
-----END PGP SIGNATURE-----



More information about the Libc-hacker mailing list