177 lines
8.5 KiB
Diff
177 lines
8.5 KiB
Diff
From e1868cb600ce8f93f61c0c4cd692eba77396b492 Mon Sep 17 00:00:00 2001
|
|
From: Petar Jovanovic <mips32r2@gmail.com>
|
|
Date: Mon, 24 Jun 2024 10:33:46 +0000
|
|
Subject: [PATCH 16/21] mips: skip using shared syscall numbers for mips64
|
|
|
|
mips does not use shared syscall numbers, so we can not use
|
|
vki-scnums-shared-linux.h.
|
|
|
|
This fixes KDE #444781.
|
|
|
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
|
Signed-off-by: Aleksandar Rikalo <arikalo@gmail.com>
|
|
|
|
(cherry picked from commit efaa17e53a750d5f0f4c138b507b1b104729ed67)
|
|
---
|
|
NEWS | 1 +
|
|
coregrind/m_syswrap/syswrap-mips64-linux.c | 1 +
|
|
include/pub_tool_vkiscnums_asm.h | 1 -
|
|
include/vki/vki-scnums-mips64-linux.h | 98 ++++++++++++++++++++++
|
|
4 files changed, 100 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/NEWS b/NEWS
|
|
index 523380a98fe5..9f4f69744086 100644
|
|
--- a/NEWS
|
|
+++ b/NEWS
|
|
@@ -8,6 +8,7 @@ The following bugs have been fixed or resolved on this branch.
|
|
202770 open fd at exit --log-socket=127.0.0.1:1500 with --track-fds=yes
|
|
311655 --log-file=FILE leads to apparent fd leak
|
|
337388 fcntl works on Valgrind's own file descriptors
|
|
+444781 MIPS: wrong syscall numbers used
|
|
453044 gbserver_tests failures in aarch64
|
|
479661 Valgrind leaks file descriptors
|
|
486180 [MIPS] 'VexGuestArchState' has no member named 'guest_IP_AT_SYSCALL'
|
|
diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
|
|
index 24f2bcc93956..b07b7da459e6 100644
|
|
--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
|
|
+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
|
|
@@ -813,6 +813,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
LINX_ (__NR_pwritev2, sys_pwritev2),
|
|
LINX_ (__NR_syncfs, sys_syncfs),
|
|
LINXY (__NR_statx, sys_statx),
|
|
+ GENX_ (__NR_rseq, sys_ni_syscall),
|
|
LINX_ (__NR_setns, sys_setns),
|
|
LINXY (__NR_io_uring_setup, sys_io_uring_setup),
|
|
LINXY (__NR_io_uring_enter, sys_io_uring_enter),
|
|
diff --git a/include/pub_tool_vkiscnums_asm.h b/include/pub_tool_vkiscnums_asm.h
|
|
index d3d7dc19be9d..f97a3af3a19c 100644
|
|
--- a/include/pub_tool_vkiscnums_asm.h
|
|
+++ b/include/pub_tool_vkiscnums_asm.h
|
|
@@ -70,7 +70,6 @@
|
|
# include "vki/vki-scnums-shared-linux.h"
|
|
|
|
#elif defined(VGP_mips64_linux)
|
|
-# include "vki/vki-scnums-shared-linux.h"
|
|
# include "vki/vki-scnums-mips64-linux.h"
|
|
|
|
#elif defined(VGP_x86_freebsd) || defined(VGP_amd64_freebsd) || defined(VGP_arm64_freebsd)
|
|
diff --git a/include/vki/vki-scnums-mips64-linux.h b/include/vki/vki-scnums-mips64-linux.h
|
|
index 1ae7a5dbec7a..c5291e31c654 100644
|
|
--- a/include/vki/vki-scnums-mips64-linux.h
|
|
+++ b/include/vki/vki-scnums-mips64-linux.h
|
|
@@ -362,6 +362,45 @@
|
|
#define __NR_pkey_alloc (__NR_Linux + 324)
|
|
#define __NR_pkey_free (__NR_Linux + 325)
|
|
#define __NR_statx (__NR_Linux + 326)
|
|
+#define __NR_rseq (__NR_Linux + 327)
|
|
+#define __NR_io_pgetevents (__NR_Linux + 328)
|
|
+#define __NR_pidfd_send_signal (__NR_Linux + 424)
|
|
+#define __NR_io_uring_setup (__NR_Linux + 425)
|
|
+#define __NR_io_uring_enter (__NR_Linux + 426)
|
|
+#define __NR_io_uring_register (__NR_Linux + 427)
|
|
+#define __NR_open_tree (__NR_Linux + 428)
|
|
+#define __NR_move_mount (__NR_Linux + 429)
|
|
+#define __NR_fsopen (__NR_Linux + 430)
|
|
+#define __NR_fsconfig (__NR_Linux + 431)
|
|
+#define __NR_fsmount (__NR_Linux + 432)
|
|
+#define __NR_fspick (__NR_Linux + 433)
|
|
+#define __NR_pidfd_open (__NR_Linux + 434)
|
|
+#define __NR_clone3 (__NR_Linux + 435)
|
|
+#define __NR_close_range (__NR_Linux + 436)
|
|
+#define __NR_openat2 (__NR_Linux + 437)
|
|
+#define __NR_pidfd_getfd (__NR_Linux + 438)
|
|
+#define __NR_faccessat2 (__NR_Linux + 439)
|
|
+#define __NR_process_madvise (__NR_Linux + 440)
|
|
+#define __NR_epoll_pwait2 (__NR_Linux + 441)
|
|
+#define __NR_mount_setattr (__NR_Linux + 442)
|
|
+#define __NR_quotactl_fd (__NR_Linux + 443)
|
|
+#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
|
+#define __NR_landlock_add_rule (__NR_Linux + 445)
|
|
+#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
|
+#define __NR_process_mrelease (__NR_Linux + 448)
|
|
+#define __NR_futex_waitv (__NR_Linux + 449)
|
|
+#define __NR_set_mempolicy_home_node (__NR_Linux + 450)
|
|
+#define __NR_cachestat (__NR_Linux + 451)
|
|
+#define __NR_fchmodat2 (__NR_Linux + 452)
|
|
+#define __NR_map_shadow_stack (__NR_Linux + 453)
|
|
+#define __NR_futex_wake (__NR_Linux + 454)
|
|
+#define __NR_futex_wait (__NR_Linux + 455)
|
|
+#define __NR_futex_requeue (__NR_Linux + 456)
|
|
+#define __NR_statmount (__NR_Linux + 457)
|
|
+#define __NR_listmount (__NR_Linux + 458)
|
|
+#define __NR_lsm_get_self_attr (__NR_Linux + 459)
|
|
+#define __NR_lsm_set_self_attr (__NR_Linux + 460)
|
|
+#define __NR_lsm_list_modules (__NR_Linux + 461)
|
|
|
|
#elif defined(VGABI_N32)
|
|
|
|
@@ -701,6 +740,65 @@
|
|
#define __NR_pkey_alloc (__NR_Linux + 328)
|
|
#define __NR_pkey_free (__NR_Linux + 329)
|
|
#define __NR_statx (__NR_Linux + 330)
|
|
+#define __NR_rseq (__NR_Linux + 331)
|
|
+#define __NR_io_pgetevents (__NR_Linux + 332)
|
|
+#define __NR_clock_gettime64 (__NR_Linux + 403)
|
|
+#define __NR_clock_settime64 (__NR_Linux + 404)
|
|
+#define __NR_clock_adjtime64 (__NR_Linux + 405)
|
|
+#define __NR_clock_getres_time64 (__NR_Linux + 406)
|
|
+#define __NR_clock_nanosleep_time64 (__NR_Linux + 407)
|
|
+#define __NR_timer_gettime64 (__NR_Linux + 408)
|
|
+#define __NR_timer_settime64 (__NR_Linux + 409)
|
|
+#define __NR_timerfd_gettime64 (__NR_Linux + 410)
|
|
+#define __NR_timerfd_settime64 (__NR_Linux + 411)
|
|
+#define __NR_utimensat_time64 (__NR_Linux + 412)
|
|
+#define __NR_pselect6_time64 (__NR_Linux + 413)
|
|
+#define __NR_ppoll_time64 (__NR_Linux + 414)
|
|
+#define __NR_io_pgetevents_time64 (__NR_Linux + 416)
|
|
+#define __NR_recvmmsg_time64 (__NR_Linux + 417)
|
|
+#define __NR_mq_timedsend_time64 (__NR_Linux + 418)
|
|
+#define __NR_mq_timedreceive_time64 (__NR_Linux + 419)
|
|
+#define __NR_semtimedop_time64 (__NR_Linux + 420)
|
|
+#define __NR_rt_sigtimedwait_time64 (__NR_Linux + 421)
|
|
+#define __NR_futex_time64 (__NR_Linux + 422)
|
|
+#define __NR_sched_rr_get_interval_time64 (__NR_Linux + 423)
|
|
+#define __NR_pidfd_send_signal (__NR_Linux + 424)
|
|
+#define __NR_io_uring_setup (__NR_Linux + 425)
|
|
+#define __NR_io_uring_enter (__NR_Linux + 426)
|
|
+#define __NR_io_uring_register (__NR_Linux + 427)
|
|
+#define __NR_open_tree (__NR_Linux + 428)
|
|
+#define __NR_move_mount (__NR_Linux + 429)
|
|
+#define __NR_fsopen (__NR_Linux + 430)
|
|
+#define __NR_fsconfig (__NR_Linux + 431)
|
|
+#define __NR_fsmount (__NR_Linux + 432)
|
|
+#define __NR_fspick (__NR_Linux + 433)
|
|
+#define __NR_pidfd_open (__NR_Linux + 434)
|
|
+#define __NR_clone3 (__NR_Linux + 435)
|
|
+#define __NR_close_range (__NR_Linux + 436)
|
|
+#define __NR_openat2 (__NR_Linux + 437)
|
|
+#define __NR_pidfd_getfd (__NR_Linux + 438)
|
|
+#define __NR_faccessat2 (__NR_Linux + 439)
|
|
+#define __NR_process_madvise (__NR_Linux + 440)
|
|
+#define __NR_epoll_pwait2 (__NR_Linux + 441)
|
|
+#define __NR_mount_setattr (__NR_Linux + 442)
|
|
+#define __NR_quotactl_fd (__NR_Linux + 443)
|
|
+#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
|
+#define __NR_landlock_add_rule (__NR_Linux + 445)
|
|
+#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
|
+#define __NR_process_mrelease (__NR_Linux + 448)
|
|
+#define __NR_futex_waitv (__NR_Linux + 449)
|
|
+#define __NR_set_mempolicy_home_node (__NR_Linux + 450)
|
|
+#define __NR_cachestat (__NR_Linux + 451)
|
|
+#define __NR_fchmodat2 (__NR_Linux + 452)
|
|
+#define __NR_map_shadow_stack (__NR_Linux + 453)
|
|
+#define __NR_futex_wake (__NR_Linux + 454)
|
|
+#define __NR_futex_wait (__NR_Linux + 455)
|
|
+#define __NR_futex_requeue (__NR_Linux + 456)
|
|
+#define __NR_statmount (__NR_Linux + 457)
|
|
+#define __NR_listmount (__NR_Linux + 458)
|
|
+#define __NR_lsm_get_self_attr (__NR_Linux + 459)
|
|
+#define __NR_lsm_set_self_attr (__NR_Linux + 460)
|
|
+#define __NR_lsm_list_modules (__NR_Linux + 461)
|
|
|
|
#else
|
|
#error unknown mips64 abi
|
|
--
|
|
2.45.2
|
|
|