From cbeab2842680ea63e6766a99d7fcea41dfcd05ca Mon Sep 17 00:00:00 2001 From: Matheus Tavares Bernardino Date: Fri, 9 May 2025 06:48:14 -0700 Subject: [PATCH] Fix for kernel 4.2: don't use 64 bits syscalls/types The currently Linux kernel version supported by qemu is based on upstream kernel 4.2 [1]. However, the 64 bits syscalls from musl are not implemented by Hexagon kernel 4.2. And the time_t type is now 64 bits for all archs on musl (not only the 64 bits archs), so we also need to force our own type size here for kernel 4.2. Furthermore, we need to refrain from using faccessat2, as this was only added at kernel 5.8. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/bcain/linux.git/log/?h=bcain/boot_qemu Signed-off-by: Matheus Tavares Bernardino --- arch/hexagon/bits/alltypes.h.in | 2 ++ arch/hexagon/bits/syscall.h.in | 22 +--------------------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/arch/hexagon/bits/alltypes.h.in b/arch/hexagon/bits/alltypes.h.in index e5d9d616..0bacd779 100644 --- a/arch/hexagon/bits/alltypes.h.in +++ b/arch/hexagon/bits/alltypes.h.in @@ -16,3 +16,5 @@ TYPEDEF long wchar_t; TYPEDEF float float_t; TYPEDEF double double_t; TYPEDEF struct { long long __ll; long double __ld; } max_align_t; + +TYPEDEF long time_t; diff --git a/arch/hexagon/bits/syscall.h.in b/arch/hexagon/bits/syscall.h.in index 5e7b96d0..56915b80 100644 --- a/arch/hexagon/bits/syscall.h.in +++ b/arch/hexagon/bits/syscall.h.in @@ -276,26 +276,6 @@ #define __NR_pkey_alloc 289 #define __NR_pkey_free 290 #define __NR_statx 291 -#define __NR_clock_gettime64 403 -#define __NR_clock_settime64 404 -#define __NR_clock_adjtime64 405 -#define __NR_clock_getres_time64 406 -#define __NR_clock_nanosleep_time64 407 -#define __NR_timer_gettime64 408 -#define __NR_timer_settime64 409 -#define __NR_timerfd_gettime64 410 -#define __NR_timerfd_settime64 411 -#define __NR_utimensat_time64 412 -#define __NR_pselect6_time64 413 -#define __NR_ppoll_time64 414 -#define __NR_io_pgetevents_time64 416 -#define __NR_recvmmsg_time64 417 -#define __NR_mq_timedsend_time64 418 -#define __NR_mq_timedreceive_time64 419 -#define __NR_semtimedop_time64 420 -#define __NR_rt_sigtimedwait_time64 421 -#define __NR_futex_time64 422 -#define __NR_sched_rr_get_interval_time64 423 #define __NR_pidfd_send_signal 424 #define __NR_io_uring_setup 425 #define __NR_io_uring_enter 426 @@ -310,9 +290,9 @@ #define __NR_close_range 436 #define __NR_openat2 437 #define __NR_pidfd_getfd 438 -#define __NR_faccessat2 439 #define __NR_process_madvise 440 #define __NR_syscalls (__NR_process_madvise+1) +#define __NR_faccessat2 __NR_faccessat #define __NR_newfstatat __NR_fstatat #define __NR_fcntl64 __NR_fcntl #define __NR_statfs64 __NR_statfs