X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fstdio%2F__stdio_seek.c;h=c7a5b73066f6de8d6ed46be823b0647f7b00af37;hp=fdb9fe7f2ff086ee364065fa68506c0b6eed1563;hb=2cdfb7ca26f46f151afbc23d5d94fc68597137f5;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01 diff --git a/src/stdio/__stdio_seek.c b/src/stdio/__stdio_seek.c index fdb9fe7f..c7a5b730 100644 --- a/src/stdio/__stdio_seek.c +++ b/src/stdio/__stdio_seek.c @@ -7,7 +7,13 @@ static off_t retneg1(FILE *f, off_t off, int whence) off_t __stdio_seek(FILE *f, off_t off, int whence) { - off_t ret = __syscall_lseek(f->fd, off, whence); + off_t ret; +#ifdef __NR__llseek + if (syscall5(__NR__llseek, f->fd, off>>32, off, (long)&ret, whence)<0) + ret = -1; +#else + ret = syscall3(__NR_lseek, f->fd, off, whence); +#endif /* Detect unseekable files and optimize future failures out */ if (ret < 0 && off == 0 && whence == SEEK_CUR) f->seek = retneg1;