yann@2437: ripped from Debian yann@2437: yann@2437: sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++ yann@2437: 1 file changed, 13 insertions(+) yann@2437: yann@2437: diff -durN glibc-2.12.1.orig/sysdeps/unix/sysv/linux/posix_fadvise.c glibc-2.12.1/sysdeps/unix/sysv/linux/posix_fadvise.c yann@2437: --- glibc-2.12.1.orig/sysdeps/unix/sysv/linux/posix_fadvise.c 2003-08-17 02:36:22.000000000 +0200 yann@2437: +++ glibc-2.12.1/sysdeps/unix/sysv/linux/posix_fadvise.c 2009-11-13 00:50:03.000000000 +0100 yann@2437: @@ -35,6 +35,19 @@ yann@2437: return INTERNAL_SYSCALL_ERRNO (ret, err); yann@2437: return 0; yann@2437: #else yann@2437: +# ifdef __NR_fadvise64_64 yann@2437: + INTERNAL_SYSCALL_DECL (err); yann@2437: + int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, yann@2437: + __LONG_LONG_PAIR ((long) (offset >> 31), yann@2437: + (long) offset), yann@2437: + __LONG_LONG_PAIR ((long) (len >> 31), yann@2437: + (long) len), yann@2437: + advise); yann@2437: + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) yann@2437: + return INTERNAL_SYSCALL_ERRNO (ret, err); yann@2437: + return 0; yann@2437: +# else yann@2437: return ENOSYS; yann@2437: +# endif yann@2437: #endif yann@2437: }