summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2011-04-20 13:59:15 +0300
committerKhem Raj <raj.khem@gmail.com>2011-05-07 16:59:48 -0700
commit074930dd7f2a18a7013cdb72cc38136f3be39c40 (patch)
tree503b6f2aa50f88573289e8e6efc57207552a7728
parent5cf382c0f98d1943bcf51ffa8bde6103e1f102ab (diff)
posix_fadvise64: fix x86 implementation
Commit 73d59554144f429b1cf0d4d7fa7de42bdf59ad92 completely broke the x86 implementation of posix_fadvise64. It moved the first the assembly code retn instruction gets missing depending on the Technically the file has two implementaions for posix_fadvise64, one when __NR_fadvise64_64 is available, and second one if only __NR_fadvise64 is there. Fix the #ifdef's to be proper for that. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--libc/sysdeps/linux/i386/posix_fadvise64.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/i386/posix_fadvise64.S b/libc/sysdeps/linux/i386/posix_fadvise64.S
index b4aeff1f4..8a8947d7b 100644
--- a/libc/sysdeps/linux/i386/posix_fadvise64.S
+++ b/libc/sysdeps/linux/i386/posix_fadvise64.S
@@ -22,7 +22,7 @@
#include <bits/errno.h>
#include <sys/syscall.h>
-#if defined __NR_fadvise64_64
+#if defined __NR_fadvise64_64 || defined __NR_fadvise64
/* Was named __libc_posix_fadvise64 for some inexplicable reason.
** google says only uclibc has *__libc*_posix_fadviseXXX,
@@ -35,6 +35,7 @@
.global posix_fadvise64
.type posix_fadvise64,%function
posix_fadvise64:
+#if defined __NR_fadvise64_64
/* Save regs */
pushl %ebp
pushl %ebx
@@ -91,6 +92,7 @@ overflow:
/* Returns 0 on success, else an error code. */
negl %eax
+#endif
/* Successful; return the syscall's value. */
ret