]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tools/nolibc: also handle _llseek system call
authorThomas Weißschuh <linux@weissschuh.net>
Sat, 18 Apr 2026 10:19:56 +0000 (12:19 +0200)
committerThomas Weißschuh <linux@weissschuh.net>
Mon, 27 Apr 2026 17:45:25 +0000 (19:45 +0200)
On some architectures the llseek system call contains a leading
underscore. Treat it the same way as llseek and prefer it over the
plain lseek system call as is necessary for 64-bit offset handling.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://patch.msgid.link/20260418-nolibc-largefile-v1-1-b91f0775bac3@weissschuh.net
tools/include/nolibc/sys.h

index fd7a2ee780e88bd7ea55839589ab5e0dee3a6194..841158eb07c33f336f7ddf22265f48ad9f1d9256 100644 (file)
@@ -611,12 +611,18 @@ int link(const char *old, const char *new)
 static __attribute__((unused))
 off_t _sys_lseek(int fd, off_t offset, int whence)
 {
-#if defined(__NR_llseek)
+#if defined(__NR_llseek) || defined(__NR__llseek)
        __kernel_loff_t loff = 0;
+       int ret, nr_llseek;
        off_t result;
-       int ret;
 
-       ret = __nolibc_syscall5(__NR_llseek, fd, offset >> 32, (uint32_t)offset, &loff, whence);
+#if defined(__NR_llseek)
+       nr_llseek = __NR_llseek;
+#else
+       nr_llseek = __NR__llseek;
+#endif
+
+       ret = __nolibc_syscall5(nr_llseek, fd, offset >> 32, (uint32_t)offset, &loff, whence);
        if (ret < 0)
                result = ret;
        else