patches/glibc/ports-2.12.1/200-fadvise64_64.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue May 03 00:20:04 2011 +0200 (2011-05-03)
changeset 2437 7657175fcb8c
permissions -rw-r--r--
libc/glibc: update patchset, add ports patchset

Patchset provided by "Ioannis E. Venetis" <venetis@mail.capsl.udel.edu>
http://sourceware.org/ml/crossgcc/2011-04/msg00072.html
http://sourceware.org/ml/crossgcc/2011-04/msg00073.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@2437
     1
ripped from Debian
yann@2437
     2
yann@2437
     3
 sysdeps/unix/sysv/linux/posix_fadvise.c |   13 +++++++++++++
yann@2437
     4
 1 file changed, 13 insertions(+)
yann@2437
     5
yann@2437
     6
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
     7
--- glibc-2.12.1.orig/sysdeps/unix/sysv/linux/posix_fadvise.c	2003-08-17 02:36:22.000000000 +0200
yann@2437
     8
+++ glibc-2.12.1/sysdeps/unix/sysv/linux/posix_fadvise.c	2009-11-13 00:50:03.000000000 +0100
yann@2437
     9
@@ -35,6 +35,19 @@
yann@2437
    10
     return INTERNAL_SYSCALL_ERRNO (ret, err);
yann@2437
    11
   return 0;
yann@2437
    12
 #else
yann@2437
    13
+# ifdef __NR_fadvise64_64
yann@2437
    14
+  INTERNAL_SYSCALL_DECL (err);  
yann@2437
    15
+  int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
yann@2437
    16
+			      __LONG_LONG_PAIR ((long) (offset >> 31),
yann@2437
    17
+						(long) offset),
yann@2437
    18
+			      __LONG_LONG_PAIR ((long) (len >> 31),
yann@2437
    19
+						(long) len),
yann@2437
    20
+			      advise);
yann@2437
    21
+  if (INTERNAL_SYSCALL_ERROR_P (ret, err))
yann@2437
    22
+    return INTERNAL_SYSCALL_ERRNO (ret, err);
yann@2437
    23
+  return 0;
yann@2437
    24
+# else
yann@2437
    25
   return ENOSYS;
yann@2437
    26
+# endif
yann@2437
    27
 #endif
yann@2437
    28
 }