summaryrefslogtreecommitdiff
path: root/patches/glibc/2_9/260-fadvise64_64.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/glibc/2_9/260-fadvise64_64.patch')
-rw-r--r--patches/glibc/2_9/260-fadvise64_64.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/patches/glibc/2_9/260-fadvise64_64.patch b/patches/glibc/2_9/260-fadvise64_64.patch
new file mode 100644
index 0000000..3cd0020
--- /dev/null
+++ b/patches/glibc/2_9/260-fadvise64_64.patch
@@ -0,0 +1,30 @@
+Original patch from: gentoo/src/patchsets/glibc/2.9/1070_all_glibc-fadvise64_64.patch
+
+-= BEGIN original header =-
+ripped from Debian
+
+-= END original header =-
+
+diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/posix_fadvise.c glibc-2_9/sysdeps/unix/sysv/linux/posix_fadvise.c
+--- glibc-2_9.orig/sysdeps/unix/sysv/linux/posix_fadvise.c 2003-08-17 02:36:22.000000000 +0200
++++ glibc-2_9/sysdeps/unix/sysv/linux/posix_fadvise.c 2009-02-02 22:00:58.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
+ }