summaryrefslogtreecommitdiff
path: root/packages/glibc/2.15/0014-fadvise64_64.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/glibc/2.15/0014-fadvise64_64.patch')
-rw-r--r--packages/glibc/2.15/0014-fadvise64_64.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/glibc/2.15/0014-fadvise64_64.patch b/packages/glibc/2.15/0014-fadvise64_64.patch
new file mode 100644
index 0000000..191d833
--- /dev/null
+++ b/packages/glibc/2.15/0014-fadvise64_64.patch
@@ -0,0 +1,27 @@
+ripped from Debian
+
+ sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- a/sysdeps/unix/sysv/linux/posix_fadvise.c
++++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
+@@ -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
+ }