yann@1365: Original patch from: gentoo/src/patchsets/glibc/2.9/1070_all_glibc-fadvise64_64.patch yann@1365: yann@1365: -= BEGIN original header =- yann@1365: ripped from Debian yann@1365: yann@1365: -= END original header =- yann@1365: yann@1365: diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/posix_fadvise.c glibc-2_9/sysdeps/unix/sysv/linux/posix_fadvise.c yann@1365: --- glibc-2_9.orig/sysdeps/unix/sysv/linux/posix_fadvise.c 2003-08-17 02:36:22.000000000 +0200 yann@1365: +++ glibc-2_9/sysdeps/unix/sysv/linux/posix_fadvise.c 2009-02-02 22:00:58.000000000 +0100 yann@1365: @@ -35,6 +35,19 @@ yann@1365: return INTERNAL_SYSCALL_ERRNO (ret, err); yann@1365: return 0; yann@1365: #else yann@1365: +# ifdef __NR_fadvise64_64 yann@1365: + INTERNAL_SYSCALL_DECL (err); yann@1365: + int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, yann@1365: + __LONG_LONG_PAIR ((long) (offset >> 31), yann@1365: + (long) offset), yann@1365: + __LONG_LONG_PAIR ((long) (len >> 31), yann@1365: + (long) len), yann@1365: + advise); yann@1365: + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) yann@1365: + return INTERNAL_SYSCALL_ERRNO (ret, err); yann@1365: + return 0; yann@1365: +# else yann@1365: return ENOSYS; yann@1365: +# endif yann@1365: #endif yann@1365: }