tools/nolibc: also handle _llseek system call

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
This commit is contained in:
Thomas Weißschuh 2026-04-18 12:19:56 +02:00
parent 7ffb6e99c3
commit f38a0bb745

View 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