patches/glibc/ports-2.13/200-fadvise64_64.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:26:53 2011 +0200 (2011-08-02)
changeset 2592 4908eb2b6f17
permissions -rw-r--r--
scripts/functions: cvs retrieval first tries the mirror for tarballs

The cvs download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via cvs.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard cvs retrieval will kick in.

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