patches/glibc/ports-2.12.1/200-fadvise64_64.patch
author Anthony Foiani <anthony.foiani@gmail.com>
Thu Apr 26 19:55:59 2012 -0600 (2012-04-26)
changeset 2939 58974be61289
permissions -rw-r--r--
Allow multi-word "install" command.

Autoconf can determine that the correct install command includes flags,
e.g., "/usr/bin/install -c". When using this as a command, we can't
enclose the value in double-quotes, as that makes some shells use the
whole expression as a filename:

# this is the value returned by autoconf and stored in CT_install
$ ins="/usr/bin/install -c"

# if we call it with quotes, the command is not found
$ "${ins}"
bash: /usr/bin/install -c: No such file or directory

# removing the quotes lets it work as expected
$ ${ins}
/usr/bin/install: missing file operand
Try `/usr/bin/install --help' for more information.

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
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
 }