From 29a778aa191e819b9a8f0a0e4c591588fe50e446 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Fri, 15 Apr 2011 23:06:40 +0200 Subject: avoid circular dependency in lseek and llseek, providing a stub lseek Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- libc/sysdeps/linux/common/lseek.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'libc/sysdeps/linux/common/lseek.c') diff --git a/libc/sysdeps/linux/common/lseek.c b/libc/sysdeps/linux/common/lseek.c index 9ff424048..1ed956e84 100644 --- a/libc/sysdeps/linux/common/lseek.c +++ b/libc/sysdeps/linux/common/lseek.c @@ -12,12 +12,33 @@ #ifdef __NR_lseek _syscall3(__off_t, lseek, int, fildes, __off_t, offset, int, whence) -#else - +#elif defined __UCLIBC_HAS_LFS__ && defined __NR__llseek /* avoid circular dependency */ __off_t lseek(int fildes, __off_t offset, int whence) { return lseek64(fildes, offset, whence); } +#else +# include +__off_t lseek(int fildes, __off_t offset attribute_unused, int whence) +{ + if (fildes < 0) { + __set_errno(EBADF); + return -1; + } + + switch(whence) { + case SEEK_SET: + case SEEK_CUR: + case SEEK_END: + break; + default: + __set_errno(EINVAL); + return -1; + } + + __set_errno(ENOSYS); + return -1; +} #endif #ifndef __LINUXTHREADS_OLD__ libc_hidden_def(lseek) -- cgit v1.2.3