projects
/
oweals
/
musl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
918c5fa
)
fix broken lseek on x32 (x86_64/ILP32) with offsets larger than LONG_MAX
author
Rich Felker
<dalias@aerifal.cx>
Wed, 17 Jul 2019 03:07:49 +0000
(23:07 -0400)
committer
Rich Felker
<dalias@aerifal.cx>
Wed, 17 Jul 2019 03:07:49 +0000
(23:07 -0400)
this is analogous to commit
918c5fa0fc656e49b1ab9ce47183a23e3a36bc00
which fixed the corresponding issue for mips n32.
src/unistd/x32/lseek.c
[new file with mode: 0644]
patch
|
blob
diff --git a/src/unistd/x32/lseek.c
b/src/unistd/x32/lseek.c
new file mode 100644
(file)
index 0000000..
3263642
--- /dev/null
+++ b/
src/unistd/x32/lseek.c
@@ -0,0
+1,15
@@
+#include <unistd.h>
+#include "syscall.h"
+
+off_t __lseek(int fd, off_t offset, int whence)
+{
+ off_t ret;
+ __asm__ __volatile__ ("syscall"
+ : "=a"(ret)
+ : "a"(SYS_lseek), "D"(fd), "S"(offset), "d"(whence)
+ : "rcx", "r11", "memory");
+ return ret < 0 ? __syscall_ret(ret) : ret;
+}
+
+weak_alias(__lseek, lseek);
+weak_alias(__lseek, lseek64);