summaryrefslogtreecommitdiff
path: root/patches/glibc/ports-2.14/200-fadvise64_64.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/glibc/ports-2.14/200-fadvise64_64.patch')
-rw-r--r--patches/glibc/ports-2.14/200-fadvise64_64.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/patches/glibc/ports-2.14/200-fadvise64_64.patch b/patches/glibc/ports-2.14/200-fadvise64_64.patch
new file mode 100644
index 0000000..71bca38
--- /dev/null
+++ b/patches/glibc/ports-2.14/200-fadvise64_64.patch
@@ -0,0 +1,28 @@
+ripped from Debian
+
+ sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/posix_fadvise.c glibc-2.13/sysdeps/unix/sysv/linux/posix_fadvise.c
+--- glibc-2.13.orig/sysdeps/unix/sysv/linux/posix_fadvise.c 2003-08-17 02:36:22.000000000 +0200
++++ glibc-2.13/sysdeps/unix/sysv/linux/posix_fadvise.c 2009-11-13 00:50:03.000000000 +0100
+@@ -35,6 +35,19 @@
+ return INTERNAL_SYSCALL_ERRNO (ret, err);
+ return 0;
+ #else
++# ifdef __NR_fadvise64_64
++ INTERNAL_SYSCALL_DECL (err);
++ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
++ __LONG_LONG_PAIR ((long) (offset >> 31),
++ (long) offset),
++ __LONG_LONG_PAIR ((long) (len >> 31),
++ (long) len),
++ advise);
++ if (INTERNAL_SYSCALL_ERROR_P (ret, err))
++ return INTERNAL_SYSCALL_ERRNO (ret, err);
++ return 0;
++# else
+ return ENOSYS;
++# endif
+ #endif
+ }