!36 Upgrade to 3.22.0
From: @starlet-dx Reviewed-by: @lyn1001 Signed-off-by: @lyn1001
This commit is contained in:
commit
22e4e6fe29
File diff suppressed because it is too large
Load Diff
@ -1,154 +0,0 @@
|
|||||||
From 3c8567894361a3373c573566cdf3615954c07f6f Mon Sep 17 00:00:00 2001
|
|
||||||
From: gaoxingwang <gaoxingwang@huawei.com>
|
|
||||||
Date: Wed, 9 Feb 2022 15:43:41 +0800
|
|
||||||
Subject: [PATCH] Generate a ENOSYS (sys_ni_syscall) for clone3 on all linux
|
|
||||||
arches
|
|
||||||
|
|
||||||
---
|
|
||||||
coregrind/m_syswrap/syswrap-amd64-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-arm-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-arm64-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-mips32-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-mips64-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-nanomips-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-ppc32-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-ppc64-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-s390x-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-x86-linux.c | 1 +
|
|
||||||
include/vki/vki-scnums-shared-linux.h | 1 +
|
|
||||||
11 files changed, 11 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
||||||
index 0aef84a..d0d7efa 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
||||||
@@ -873,6 +873,7 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425
|
|
||||||
LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
|
|
||||||
LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
|
|
||||||
index db7ce10..ea703e3 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-arm-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-arm-linux.c
|
|
||||||
@@ -1042,6 +1042,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
LINXY(__NR_futex_time64, sys_futex_time64), // 422
|
|
||||||
LINXY(__NR_sched_rr_get_interval_time64,
|
|
||||||
sys_sched_rr_get_interval_time64), // 423
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
|
|
||||||
index 3ae8d86..9a9a1f9 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
|
|
||||||
@@ -825,6 +825,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
// (__NR_pkey_free, sys_ni_syscall), // 290
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 397
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c
|
|
||||||
index c70bc21..8a7e395 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-mips32-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-mips32-linux.c
|
|
||||||
@@ -1127,6 +1127,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
LINXY(__NR_futex_time64, sys_futex_time64), // 422
|
|
||||||
LINXY(__NR_sched_rr_get_interval_time64,
|
|
||||||
sys_sched_rr_get_interval_time64), // 423
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
|
|
||||||
index f6624bb..06f82e6 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
|
|
||||||
@@ -810,6 +810,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
LINX_ (__NR_syncfs, sys_syncfs),
|
|
||||||
LINXY (__NR_statx, sys_statx),
|
|
||||||
LINX_ (__NR_setns, sys_setns),
|
|
||||||
+ GENX_ (__NR_clone3, sys_ni_syscall),
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c
|
|
||||||
index 35a11ba..80c1a6f 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-nanomips-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c
|
|
||||||
@@ -820,6 +820,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
// (__NR_pkey_mprotect, sys_ni_syscall),
|
|
||||||
// (__NR_pkey_alloc, sys_ni_syscall),
|
|
||||||
// (__NR_pkey_free, sys_ni_syscall),
|
|
||||||
+ GENX_ (__NR_clone3, sys_ni_syscall),
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
|
||||||
index 8f8eec3..260b8b4 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
|
||||||
@@ -1044,6 +1044,7 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINXY(__NR_futex_time64, sys_futex_time64), // 422
|
|
||||||
LINXY(__NR_sched_rr_get_interval_time64,
|
|
||||||
sys_sched_rr_get_interval_time64), // 423
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
|
||||||
index d65a664..f29f0a2 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
|
||||||
@@ -1010,6 +1010,7 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINX_(__NR_pwritev2, sys_pwritev2), // 381
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 383
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
|
|
||||||
index 7655b4b..e0c0d5d 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
|
|
||||||
@@ -857,6 +857,7 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINX_(__NR_pwritev2, sys_pwritev2), // 377
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 379
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
|
|
||||||
index e047e59..d432e32 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-x86-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-x86-linux.c
|
|
||||||
@@ -1643,6 +1643,7 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425
|
|
||||||
LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
|
|
||||||
LINXY(__NR_io_uring_register, sys_io_uring_register),// 427
|
|
||||||
+ GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
|
||||||
diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h
|
|
||||||
index 6221d5a..963cd8e 100644
|
|
||||||
--- a/include/vki/vki-scnums-shared-linux.h
|
|
||||||
+++ b/include/vki/vki-scnums-shared-linux.h
|
|
||||||
@@ -38,5 +38,6 @@
|
|
||||||
#define __NR_fsconfig 431
|
|
||||||
#define __NR_fsmount 432
|
|
||||||
#define __NR_fspick 433
|
|
||||||
+#define __NR_clone3 435
|
|
||||||
|
|
||||||
#endif
|
|
||||||
--
|
|
||||||
2.27.0
|
|
||||||
|
|
||||||
206
valgrind-3.22.0-fchmodat2.patch
Normal file
206
valgrind-3.22.0-fchmodat2.patch
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
From a43e62dddcf51ec6578a90c5988a41e856b44b05 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Sat, 18 Nov 2023 21:17:02 +0100
|
||||||
|
Subject: [PATCH] Add fchmodat2 syscall on linux
|
||||||
|
|
||||||
|
fchmodat2 is a new syscall on linux 6.6. It is a variant of fchmodat
|
||||||
|
that takes an extra flags argument.
|
||||||
|
|
||||||
|
https://bugs.kde.org/show_bug.cgi?id=477198
|
||||||
|
|
||||||
|
(cherry picked from commit 372d09fd9a8d76847c81092ebff71c80fd6c145d)
|
||||||
|
---
|
||||||
|
NEWS | 1 +
|
||||||
|
coregrind/m_syswrap/priv_syswrap-linux.h | 3 +++
|
||||||
|
coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-arm-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-arm64-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-linux.c | 11 +++++++++++
|
||||||
|
coregrind/m_syswrap/syswrap-mips32-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-mips64-linux.c | 1 +
|
||||||
|
coregrind/m_syswrap/syswrap-nanomips-linux.c | 1 +
|
||||||
|
coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-ppc64-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-s390x-linux.c | 2 ++
|
||||||
|
coregrind/m_syswrap/syswrap-x86-linux.c | 2 ++
|
||||||
|
include/vki/vki-scnums-shared-linux.h | 2 ++
|
||||||
|
14 files changed, 35 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h
|
||||||
|
index 7c9decf5a..798c456c9 100644
|
||||||
|
--- a/coregrind/m_syswrap/priv_syswrap-linux.h
|
||||||
|
+++ b/coregrind/m_syswrap/priv_syswrap-linux.h
|
||||||
|
@@ -331,6 +331,9 @@ DECL_TEMPLATE(linux, sys_openat2);
|
||||||
|
// Linux-specific (new in Linux 5.14)
|
||||||
|
DECL_TEMPLATE(linux, sys_memfd_secret);
|
||||||
|
|
||||||
|
+// Since Linux 6.6
|
||||||
|
+DECL_TEMPLATE(linux, sys_fchmodat2);
|
||||||
|
+
|
||||||
|
/* ---------------------------------------------------------------------
|
||||||
|
Wrappers for sockets and ipc-ery. These are split into standalone
|
||||||
|
procedures because x86-linux hides them inside multiplexors
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
||||||
|
index 008600798..fe17d118b 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
||||||
|
@@ -886,6 +886,8 @@ static SyscallTableEntry syscall_table[] = {
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
|
||||||
|
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
|
||||||
|
+
|
||||||
|
+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
|
||||||
|
index 9a7a1e0d2..811931d3b 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-arm-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-arm-linux.c
|
||||||
|
@@ -1059,6 +1059,8 @@ static SyscallTableEntry syscall_main_table[] = {
|
||||||
|
LINX_(__NR_faccessat2, sys_faccessat2), // 439
|
||||||
|
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
+
|
||||||
|
+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
|
||||||
|
index 6af7bab83..3307bc2ca 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
|
||||||
|
@@ -840,6 +840,8 @@ static SyscallTableEntry syscall_main_table[] = {
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
|
||||||
|
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
|
||||||
|
+
|
||||||
|
+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
|
||||||
|
index d571fc327..efa47f2e6 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-linux.c
|
||||||
|
@@ -6059,6 +6059,17 @@ PRE(sys_fchmodat)
|
||||||
|
PRE_MEM_RASCIIZ( "fchmodat(path)", ARG2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
+PRE(sys_fchmodat2)
|
||||||
|
+{
|
||||||
|
+ PRINT("sys_fchmodat2 ( %ld, %#" FMT_REGWORD "x(%s), %" FMT_REGWORD "u, %"
|
||||||
|
+ FMT_REGWORD "u )",
|
||||||
|
+ SARG1, ARG2, (HChar*)(Addr)ARG2, ARG3, ARG4);
|
||||||
|
+ PRE_REG_READ4(long, "fchmodat2",
|
||||||
|
+ int, dfd, const char *, path, vki_mode_t, mode,
|
||||||
|
+ unsigned int, flags);
|
||||||
|
+ PRE_MEM_RASCIIZ( "fchmodat2(pathname)", ARG2 );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
PRE(sys_faccessat)
|
||||||
|
{
|
||||||
|
PRINT("sys_faccessat ( %ld, %#" FMT_REGWORD "x(%s), %ld )",
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c
|
||||||
|
index 6268a00dd..74a1f6eac 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-mips32-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-mips32-linux.c
|
||||||
|
@@ -1143,6 +1143,8 @@ static SyscallTableEntry syscall_main_table[] = {
|
||||||
|
LINX_ (__NR_faccessat2, sys_faccessat2), // 439
|
||||||
|
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
+
|
||||||
|
+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
|
||||||
|
index 6cdf25893..4e8508b7a 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
|
||||||
|
@@ -820,6 +820,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
||||||
|
LINXY (__NR_close_range, sys_close_range),
|
||||||
|
LINX_ (__NR_faccessat2, sys_faccessat2),
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2),
|
||||||
|
+ LINX_ (__NR_fchmodat2, sys_fchmodat2),
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c
|
||||||
|
index d724cde74..7859900c1 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-nanomips-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c
|
||||||
|
@@ -829,6 +829,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
||||||
|
LINXY (__NR_close_range, sys_close_range),
|
||||||
|
LINX_ (__NR_faccessat2, sys_faccessat2),
|
||||||
|
LINXY (__NR_epoll_pwait2, sys_epoll_pwait2),
|
||||||
|
+ LINX_ (__NR_fchmodat2, sys_fchmodat2),
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
||||||
|
index c0cfef235..1e19116ee 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
||||||
|
@@ -1063,6 +1063,8 @@ static SyscallTableEntry syscall_table[] = {
|
||||||
|
LINX_(__NR_faccessat2, sys_faccessat2), // 439
|
||||||
|
|
||||||
|
LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
+
|
||||||
|
+ LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
||||||
|
index f5976f30c..1097212a4 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
||||||
|
@@ -1032,6 +1032,8 @@ static SyscallTableEntry syscall_table[] = {
|
||||||
|
LINX_(__NR_faccessat2, sys_faccessat2), // 439
|
||||||
|
|
||||||
|
LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
+
|
||||||
|
+ LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
|
||||||
|
index afba154e7..3588672c7 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
|
||||||
|
@@ -873,6 +873,8 @@ static SyscallTableEntry syscall_table[] = {
|
||||||
|
LINX_(__NR_faccessat2, sys_faccessat2), // 439
|
||||||
|
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
+
|
||||||
|
+ LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
||||||
|
diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
|
||||||
|
index da4fd8fa2..58badc6b0 100644
|
||||||
|
--- a/coregrind/m_syswrap/syswrap-x86-linux.c
|
||||||
|
+++ b/coregrind/m_syswrap/syswrap-x86-linux.c
|
||||||
|
@@ -1658,6 +1658,8 @@ static SyscallTableEntry syscall_table[] = {
|
||||||
|
LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
|
||||||
|
|
||||||
|
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
|
||||||
|
+
|
||||||
|
+ LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
|
||||||
|
};
|
||||||
|
|
||||||
|
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
|
||||||
|
diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h
|
||||||
|
index 542382b53..a4cd87149 100644
|
||||||
|
--- a/include/vki/vki-scnums-shared-linux.h
|
||||||
|
+++ b/include/vki/vki-scnums-shared-linux.h
|
||||||
|
@@ -50,4 +50,6 @@
|
||||||
|
|
||||||
|
#define __NR_memfd_secret 447
|
||||||
|
|
||||||
|
+#define __NR_fchmodat2 452
|
||||||
|
+
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
||||||
122
valgrind-3.22.0-rodata.patch
Normal file
122
valgrind-3.22.0-rodata.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
commit 1d00e5ce0fb069911c4b525ec38289fb5d9021b0
|
||||||
|
Author: Paul Floyd <pjfloyd@wanadoo.fr>
|
||||||
|
Date: Sat Nov 18 08:49:34 2023 +0100
|
||||||
|
|
||||||
|
Bug 476548 - valgrind 3.22.0 fails on assertion when loading debuginfo file produced by mold
|
||||||
|
|
||||||
|
(cherry picked from commit 9ea4ae66707a4dcc6f4328e11911652e4418c585)
|
||||||
|
|
||||||
|
diff --git a/coregrind/m_debuginfo/image.c b/coregrind/m_debuginfo/image.c
|
||||||
|
index 02e509071..445f95555 100644
|
||||||
|
--- a/coregrind/m_debuginfo/image.c
|
||||||
|
+++ b/coregrind/m_debuginfo/image.c
|
||||||
|
@@ -1221,6 +1221,20 @@ Int ML_(img_strcmp_c)(DiImage* img, DiOffT off1, const HChar* str2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+Int ML_(img_strcmp_n)(DiImage* img, DiOffT off1, const HChar* str2, Word n)
|
||||||
|
+{
|
||||||
|
+ ensure_valid(img, off1, 1, "ML_(img_strcmp_c)");
|
||||||
|
+ while (n) {
|
||||||
|
+ UChar c1 = get(img, off1);
|
||||||
|
+ UChar c2 = *(const UChar*)str2;
|
||||||
|
+ if (c1 < c2) return -1;
|
||||||
|
+ if (c1 > c2) return 1;
|
||||||
|
+ if (c1 == 0) return 0;
|
||||||
|
+ off1++; str2++; --n;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
UChar ML_(img_get_UChar)(DiImage* img, DiOffT offset)
|
||||||
|
{
|
||||||
|
ensure_valid(img, offset, 1, "ML_(img_get_UChar)");
|
||||||
|
diff --git a/coregrind/m_debuginfo/priv_image.h b/coregrind/m_debuginfo/priv_image.h
|
||||||
|
index a49846f14..c91e49f01 100644
|
||||||
|
--- a/coregrind/m_debuginfo/priv_image.h
|
||||||
|
+++ b/coregrind/m_debuginfo/priv_image.h
|
||||||
|
@@ -115,6 +115,10 @@ Int ML_(img_strcmp)(DiImage* img, DiOffT off1, DiOffT off2);
|
||||||
|
cast to HChar before comparison. */
|
||||||
|
Int ML_(img_strcmp_c)(DiImage* img, DiOffT off1, const HChar* str2);
|
||||||
|
|
||||||
|
+/* Do strncmp of a C string in the image vs a normal one. Chars are
|
||||||
|
+ cast to HChar before comparison. */
|
||||||
|
+Int ML_(img_strcmp_n)(DiImage* img, DiOffT off1, const HChar* str2, Word n);
|
||||||
|
+
|
||||||
|
/* Do strlen of a C string in the image. */
|
||||||
|
SizeT ML_(img_strlen)(DiImage* img, DiOffT off);
|
||||||
|
|
||||||
|
diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c
|
||||||
|
index fb64ed976..46f8c8343 100644
|
||||||
|
--- a/coregrind/m_debuginfo/readelf.c
|
||||||
|
+++ b/coregrind/m_debuginfo/readelf.c
|
||||||
|
@@ -2501,8 +2501,7 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di )
|
||||||
|
di->rodata_avma += inrw1->bias;
|
||||||
|
di->rodata_bias = inrw1->bias;
|
||||||
|
di->rodata_debug_bias = inrw1->bias;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
+ } else {
|
||||||
|
BAD(".rodata"); /* should not happen? */
|
||||||
|
}
|
||||||
|
di->rodata_present = True;
|
||||||
|
@@ -2977,6 +2976,46 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di )
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void find_rodata(Word i, Word shnum, DiImage* dimg, struct _DebugInfo* di, DiOffT shdr_dioff,
|
||||||
|
+ UWord shdr_dent_szB, DiOffT shdr_strtab_dioff, PtrdiffT rw_dbias)
|
||||||
|
+{
|
||||||
|
+ ElfXX_Shdr a_shdr;
|
||||||
|
+ ElfXX_Shdr a_extra_shdr;
|
||||||
|
+ ML_(img_get)(&a_shdr, dimg,
|
||||||
|
+ INDEX_BIS(shdr_dioff, i, shdr_dent_szB),
|
||||||
|
+ sizeof(a_shdr));
|
||||||
|
+ if (di->rodata_present &&
|
||||||
|
+ 0 == ML_(img_strcmp_c)(dimg, shdr_strtab_dioff
|
||||||
|
+ + a_shdr.sh_name, ".rodata")) {
|
||||||
|
+ Word sh_size = a_shdr.sh_size;
|
||||||
|
+ Word j;
|
||||||
|
+ Word next_addr = a_shdr.sh_addr + a_shdr.sh_size;
|
||||||
|
+ for (j = i + 1; j < shnum; ++j) {
|
||||||
|
+ ML_(img_get)(&a_extra_shdr, dimg,
|
||||||
|
+ INDEX_BIS(shdr_dioff, j, shdr_dent_szB),
|
||||||
|
+ sizeof(a_shdr));
|
||||||
|
+ if (0 == ML_(img_strcmp_n)(dimg, shdr_strtab_dioff
|
||||||
|
+ + a_extra_shdr.sh_name, ".rodata", 7)) {
|
||||||
|
+ if (a_extra_shdr.sh_addr ==
|
||||||
|
+ VG_ROUNDUP(next_addr, a_extra_shdr.sh_addralign)) {
|
||||||
|
+ sh_size = VG_ROUNDUP(sh_size, a_extra_shdr.sh_addralign) + a_extra_shdr.sh_size;
|
||||||
|
+ }
|
||||||
|
+ next_addr = a_extra_shdr.sh_addr + a_extra_shdr.sh_size;
|
||||||
|
+ } else {
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ vg_assert(di->rodata_size == sh_size);
|
||||||
|
+ vg_assert(di->rodata_avma + a_shdr.sh_addr + rw_dbias);
|
||||||
|
+ di->rodata_debug_svma = a_shdr.sh_addr;
|
||||||
|
+ di->rodata_debug_bias = di->rodata_bias +
|
||||||
|
+ di->rodata_svma - di->rodata_debug_svma;
|
||||||
|
+ TRACE_SYMTAB("acquiring .rodata debug svma = %#lx .. %#lx\n",
|
||||||
|
+ di->rodata_debug_svma,
|
||||||
|
+ di->rodata_debug_svma + di->rodata_size - 1);
|
||||||
|
+ TRACE_SYMTAB("acquiring .rodata debug bias = %#lx\n", (UWord)di->rodata_debug_bias);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
Bool ML_(read_elf_debug) ( struct _DebugInfo* di )
|
||||||
|
{
|
||||||
|
Word i, j;
|
||||||
|
@@ -3391,7 +3430,11 @@ Bool ML_(read_elf_debug) ( struct _DebugInfo* di )
|
||||||
|
FIND(text, rx)
|
||||||
|
FIND(data, rw)
|
||||||
|
FIND(sdata, rw)
|
||||||
|
- FIND(rodata, rw)
|
||||||
|
+ // https://bugs.kde.org/show_bug.cgi?id=476548
|
||||||
|
+ // special handling for rodata as adjacent
|
||||||
|
+ // rodata sections may have been merged in ML_(read_elf_object)
|
||||||
|
+ //FIND(rodata, rw)
|
||||||
|
+ find_rodata(i, ehdr_dimg.e_shnum, dimg, di, shdr_dioff, shdr_dent_szB, shdr_strtab_dioff, rw_dbias);
|
||||||
|
FIND(bss, rw)
|
||||||
|
FIND(sbss, rw)
|
||||||
|
|
||||||
32
valgrind-3.22.0-valgrind-monitor-python-re.patch
Normal file
32
valgrind-3.22.0-valgrind-monitor-python-re.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
commit 0fbfbe05028ad18efda786a256a2738d2c231ed4
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Fri Nov 17 13:31:52 2023 +0100
|
||||||
|
|
||||||
|
valgrind-monitor.py regular expressions should use raw strings
|
||||||
|
|
||||||
|
With python 3.12 gdb will produce the following SyntaxWarning when
|
||||||
|
loading valgrind-monitor-def.py:
|
||||||
|
|
||||||
|
/usr/share/gdb/auto-load/valgrind-monitor-def.py:214:
|
||||||
|
SyntaxWarning: invalid escape sequence '\['
|
||||||
|
if re.fullmatch("^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str):
|
||||||
|
|
||||||
|
In a future python version this will become an SyntaxError.
|
||||||
|
|
||||||
|
Use a raw strings for the regular expression.
|
||||||
|
|
||||||
|
https://bugs.kde.org/show_bug.cgi?id=476708
|
||||||
|
|
||||||
|
diff --git a/coregrind/m_gdbserver/valgrind-monitor-def.py b/coregrind/m_gdbserver/valgrind-monitor-def.py
|
||||||
|
index b4e7b992d..d74b1590c 100644
|
||||||
|
--- a/coregrind/m_gdbserver/valgrind-monitor-def.py
|
||||||
|
+++ b/coregrind/m_gdbserver/valgrind-monitor-def.py
|
||||||
|
@@ -211,7 +211,7 @@ class Valgrind_ADDR_LEN_opt(Valgrind_Command):
|
||||||
|
For compatibility reason with the Valgrind gdbserver monitor command,
|
||||||
|
we detect and accept usages such as 0x1234ABCD[10]."""
|
||||||
|
def invoke(self, arg_str : str, from_tty : bool) -> None:
|
||||||
|
- if re.fullmatch("^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str):
|
||||||
|
+ if re.fullmatch(r"^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str):
|
||||||
|
arg_str = arg_str.replace("[", " ")
|
||||||
|
arg_str = arg_str.replace("]", " ")
|
||||||
|
eval_execute_2(self, arg_str,
|
||||||
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
--- valgrind/glibc-2.34567-NPTL-helgrind.supp.jj 2009-08-19 15:37:48.000000000 +0200
|
|
||||||
+++ valgrind/glibc-2.34567-NPTL-helgrind.supp 2009-10-21 16:46:31.000000000 +0200
|
|
||||||
@@ -88,6 +88,12 @@
|
|
||||||
obj:*/lib*/libpthread-2.*so*
|
|
||||||
}
|
|
||||||
{
|
|
||||||
+ helgrind-glibc2X-102a
|
|
||||||
+ Helgrind:Race
|
|
||||||
+ fun:mythread_wrapper
|
|
||||||
+ obj:*vgpreload_helgrind*.so
|
|
||||||
+}
|
|
||||||
+{
|
|
||||||
helgrind-glibc2X-103
|
|
||||||
Helgrind:Race
|
|
||||||
fun:pthread_cond_*@@GLIBC_2.*
|
|
||||||
@ -1,203 +0,0 @@
|
|||||||
From 64c0d0ffbe9ee5c1c4399bc998a2602c0848b70b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mark Wielaard <mark@klomp.org>
|
|
||||||
Date: Wed, 2 Mar 2022 21:07:09 -0500
|
|
||||||
Subject: [PATCH] valgrind: Implement linux rseq syscall as ENOSYS
|
|
||||||
|
|
||||||
This implements rseq for amd64, arm, arm64, ppc32, ppc64,
|
|
||||||
s390x and x86 linux as ENOSYS (without warning).
|
|
||||||
|
|
||||||
glibc will start using rseq to accelerate sched_getcpu, if
|
|
||||||
available. This would cause a warning from valgrind every
|
|
||||||
time a new thread is started.
|
|
||||||
|
|
||||||
Real rseq (restartable sequences) support is pretty hard, so
|
|
||||||
for now just explicitly return ENOSYS (just like we do for clone3).
|
|
||||||
|
|
||||||
https://sourceware.org/pipermail/libc-alpha/2021-December/133656.html
|
|
||||||
|
|
||||||
-----
|
|
||||||
conflicts:
|
|
||||||
context conflicts
|
|
||||||
---
|
|
||||||
coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++
|
|
||||||
coregrind/m_syswrap/syswrap-arm-linux.c | 1 +
|
|
||||||
coregrind/m_syswrap/syswrap-arm64-linux.c | 4 +++-
|
|
||||||
coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++
|
|
||||||
coregrind/m_syswrap/syswrap-ppc64-linux.c | 3 +++
|
|
||||||
coregrind/m_syswrap/syswrap-s390x-linux.c | 3 +++
|
|
||||||
coregrind/m_syswrap/syswrap-x86-linux.c | 2 ++
|
|
||||||
include/vki/vki-scnums-arm-linux.h | 1 +
|
|
||||||
include/vki/vki-scnums-arm64-linux.h | 4 +++-
|
|
||||||
include/vki/vki-scnums-ppc32-linux.h | 1 +
|
|
||||||
include/vki/vki-scnums-ppc64-linux.h | 1 +
|
|
||||||
include/vki/vki-scnums-s390x-linux.h | 5 ++++-
|
|
||||||
12 files changed, 26 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
||||||
index d0d7efa..5cd630f 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
||||||
@@ -862,6 +862,8 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 332
|
|
||||||
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 334
|
|
||||||
+
|
|
||||||
LINX_(__NR_membarrier, sys_membarrier), // 324
|
|
||||||
|
|
||||||
LINX_(__NR_copy_file_range, sys_copy_file_range), // 326
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
|
|
||||||
index ea703e3..8dbe3bc 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-arm-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-arm-linux.c
|
|
||||||
@@ -1020,6 +1020,7 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
LINX_(__NR_pwritev2, sys_pwritev2), // 393
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 397
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 398
|
|
||||||
|
|
||||||
LINXY(__NR_clock_gettime64, sys_clock_gettime64), // 403
|
|
||||||
LINX_(__NR_clock_settime64, sys_clock_settime64), // 404
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
|
|
||||||
index 9a9a1f9..76e14fa 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
|
|
||||||
@@ -823,8 +823,10 @@ static SyscallTableEntry syscall_main_table[] = {
|
|
||||||
// (__NR_pkey_mprotect, sys_ni_syscall), // 288
|
|
||||||
// (__NR_pkey_alloc, sys_ni_syscall), // 289
|
|
||||||
// (__NR_pkey_free, sys_ni_syscall), // 290
|
|
||||||
+ LINXY(__NR_statx, sys_statx), // 291
|
|
||||||
+
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 293
|
|
||||||
|
|
||||||
- LINXY(__NR_statx, sys_statx), // 397
|
|
||||||
GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
|
||||||
index 260b8b4..f07fb8e 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
|
|
||||||
@@ -1023,6 +1023,8 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 383
|
|
||||||
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 387
|
|
||||||
+
|
|
||||||
LINXY(__NR_clock_gettime64, sys_clock_gettime64), // 403
|
|
||||||
LINX_(__NR_clock_settime64, sys_clock_settime64), // 404
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
|
||||||
index f29f0a2..106b56c 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
|
|
||||||
@@ -1010,6 +1010,9 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINX_(__NR_pwritev2, sys_pwritev2), // 381
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 383
|
|
||||||
+
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 387
|
|
||||||
+
|
|
||||||
GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
|
|
||||||
index e0c0d5d..9756d23 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
|
|
||||||
@@ -857,6 +857,9 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
LINX_(__NR_pwritev2, sys_pwritev2), // 377
|
|
||||||
|
|
||||||
LINXY(__NR_statx, sys_statx), // 379
|
|
||||||
+
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 381
|
|
||||||
+
|
|
||||||
GENX_(__NR_clone3, sys_ni_syscall), // 435
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
|
|
||||||
index d432e32..d29f82c 100644
|
|
||||||
--- a/coregrind/m_syswrap/syswrap-x86-linux.c
|
|
||||||
+++ b/coregrind/m_syswrap/syswrap-x86-linux.c
|
|
||||||
@@ -1618,6 +1618,8 @@ static SyscallTableEntry syscall_table[] = {
|
|
||||||
/* Explicitly not supported on i386 yet. */
|
|
||||||
GENX_(__NR_arch_prctl, sys_ni_syscall), // 384
|
|
||||||
|
|
||||||
+ GENX_(__NR_rseq, sys_ni_syscall), // 386
|
|
||||||
+
|
|
||||||
LINXY(__NR_clock_gettime64, sys_clock_gettime64), // 403
|
|
||||||
LINX_(__NR_clock_settime64, sys_clock_settime64), // 404
|
|
||||||
|
|
||||||
diff --git a/include/vki/vki-scnums-arm-linux.h b/include/vki/vki-scnums-arm-linux.h
|
|
||||||
index ff560e1..485db8b 100644
|
|
||||||
--- a/include/vki/vki-scnums-arm-linux.h
|
|
||||||
+++ b/include/vki/vki-scnums-arm-linux.h
|
|
||||||
@@ -432,6 +432,7 @@
|
|
||||||
#define __NR_pkey_alloc 395
|
|
||||||
#define __NR_pkey_free 396
|
|
||||||
#define __NR_statx 397
|
|
||||||
+#define __NR_rseq 398
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/include/vki/vki-scnums-arm64-linux.h b/include/vki/vki-scnums-arm64-linux.h
|
|
||||||
index 9aa3b2b..acdfb39 100644
|
|
||||||
--- a/include/vki/vki-scnums-arm64-linux.h
|
|
||||||
+++ b/include/vki/vki-scnums-arm64-linux.h
|
|
||||||
@@ -323,9 +323,11 @@
|
|
||||||
#define __NR_pkey_alloc 289
|
|
||||||
#define __NR_pkey_free 290
|
|
||||||
#define __NR_statx 291
|
|
||||||
+#define __NR_io_pgetevents 291
|
|
||||||
+#define __NR_rseq 293
|
|
||||||
|
|
||||||
#undef __NR_syscalls
|
|
||||||
-#define __NR_syscalls 292
|
|
||||||
+#define __NR_syscalls 294
|
|
||||||
|
|
||||||
///*
|
|
||||||
// * All syscalls below here should go away really,
|
|
||||||
diff --git a/include/vki/vki-scnums-ppc32-linux.h b/include/vki/vki-scnums-ppc32-linux.h
|
|
||||||
index 6987ad9..08fa77d 100644
|
|
||||||
--- a/include/vki/vki-scnums-ppc32-linux.h
|
|
||||||
+++ b/include/vki/vki-scnums-ppc32-linux.h
|
|
||||||
@@ -415,6 +415,7 @@
|
|
||||||
#define __NR_pkey_alloc 384
|
|
||||||
#define __NR_pkey_free 385
|
|
||||||
#define __NR_pkey_mprotect 386
|
|
||||||
+#define __NR_rseq 387
|
|
||||||
|
|
||||||
#endif /* __VKI_SCNUMS_PPC32_LINUX_H */
|
|
||||||
|
|
||||||
diff --git a/include/vki/vki-scnums-ppc64-linux.h b/include/vki/vki-scnums-ppc64-linux.h
|
|
||||||
index 6827964..507117b 100644
|
|
||||||
--- a/include/vki/vki-scnums-ppc64-linux.h
|
|
||||||
+++ b/include/vki/vki-scnums-ppc64-linux.h
|
|
||||||
@@ -407,6 +407,7 @@
|
|
||||||
#define __NR_pkey_alloc 384
|
|
||||||
#define __NR_pkey_free 385
|
|
||||||
#define __NR_pkey_mprotect 386
|
|
||||||
+#define __NR_pkey_rseq 387
|
|
||||||
|
|
||||||
#endif /* __VKI_SCNUMS_PPC64_LINUX_H */
|
|
||||||
|
|
||||||
diff --git a/include/vki/vki-scnums-s390x-linux.h b/include/vki/vki-scnums-s390x-linux.h
|
|
||||||
index f386170..51cc572 100644
|
|
||||||
--- a/include/vki/vki-scnums-s390x-linux.h
|
|
||||||
+++ b/include/vki/vki-scnums-s390x-linux.h
|
|
||||||
@@ -340,8 +340,11 @@
|
|
||||||
#define __NR_s390_guarded_storage 378
|
|
||||||
#define __NR_statx 379
|
|
||||||
#define __NR_s390_sthyi 380
|
|
||||||
+#define __NR_kexec_file_load 381
|
|
||||||
+#define __NR_io_pgetevents 382
|
|
||||||
+#define __NR_rseq 383
|
|
||||||
|
|
||||||
-#define NR_syscalls 381
|
|
||||||
+#define NR_syscalls 384
|
|
||||||
|
|
||||||
/*
|
|
||||||
* There are some system calls that are not present on 64 bit, some
|
|
||||||
--
|
|
||||||
2.27.0
|
|
||||||
|
|
||||||
@ -1,75 +0,0 @@
|
|||||||
From c8c53b2ea49142f4e764520e0af71c0d48bbf00a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Feiyang Chen <chenfeiyang@loongson.cn>
|
|
||||||
Date: Tue, 3 Jan 2023 11:17:29 +0800
|
|
||||||
Subject: [PATCH] valgrind: Sync LoongArch with glibc 2.36
|
|
||||||
|
|
||||||
---
|
|
||||||
coregrind/vgdb-invoker-ptrace.c | 20 ++++----------------
|
|
||||||
1 file changed, 4 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/coregrind/vgdb-invoker-ptrace.c b/coregrind/vgdb-invoker-ptrace.c
|
|
||||||
index 7865c53..d930589 100644
|
|
||||||
--- a/coregrind/vgdb-invoker-ptrace.c
|
|
||||||
+++ b/coregrind/vgdb-invoker-ptrace.c
|
|
||||||
@@ -759,11 +759,7 @@ void restore_and_detach (pid_t pid)
|
|
||||||
}
|
|
||||||
|
|
||||||
DEBUG(1, "setregs restore registers pid %d\n", pid_of_save_regs);
|
|
||||||
-#if defined(VGP_loongarch64_linux)
|
|
||||||
- if (!setregs(pid_of_save_regs, &user_save.gpr, sizeof(user_save.gpr))) {
|
|
||||||
-#else
|
|
||||||
if (!setregs(pid_of_save_regs, &user_save.regs, sizeof(user_save.regs))) {
|
|
||||||
-#endif
|
|
||||||
ERROR(errno, "setregs restore registers pid %d after cont\n",
|
|
||||||
pid_of_save_regs);
|
|
||||||
}
|
|
||||||
@@ -845,11 +841,7 @@ Bool invoker_invoke_gdbserver (pid_t pid)
|
|
||||||
return False;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if defined(VGP_loongarch64_linux)
|
|
||||||
- if (!getregs(pid, &user_mod.gpr, sizeof(user_mod.gpr))) {
|
|
||||||
-#else
|
|
||||||
if (!getregs(pid, &user_mod.regs, sizeof(user_mod.regs))) {
|
|
||||||
-#endif
|
|
||||||
detach_from_all_threads(pid);
|
|
||||||
return False;
|
|
||||||
}
|
|
||||||
@@ -885,7 +877,7 @@ Bool invoker_invoke_gdbserver (pid_t pid)
|
|
||||||
#elif defined(VGA_mips64)
|
|
||||||
sp = user_mod.regs[29];
|
|
||||||
#elif defined(VGA_loongarch64)
|
|
||||||
- sp = user_mod.gpr[3];
|
|
||||||
+ sp = user_mod.regs[3];
|
|
||||||
#else
|
|
||||||
I_die_here : (sp) architecture missing in vgdb-invoker-ptrace.c
|
|
||||||
#endif
|
|
||||||
@@ -1084,10 +1076,10 @@ Bool invoker_invoke_gdbserver (pid_t pid)
|
|
||||||
user_mod.regs[25] = shared64->invoke_gdbserver;
|
|
||||||
#elif defined(VGA_loongarch64)
|
|
||||||
/* put check arg in register a0 */
|
|
||||||
- user_mod.gpr[4] = check;
|
|
||||||
+ user_mod.regs[4] = check;
|
|
||||||
/* put NULL return address in ra */
|
|
||||||
- user_mod.gpr[1] = bad_return;
|
|
||||||
- user_mod.pc = shared64->invoke_gdbserver;
|
|
||||||
+ user_mod.regs[1] = bad_return;
|
|
||||||
+ user_mod.csr_era = shared64->invoke_gdbserver;
|
|
||||||
#else
|
|
||||||
I_die_here: architecture missing in vgdb-invoker-ptrace.c
|
|
||||||
#endif
|
|
||||||
@@ -1096,11 +1088,7 @@ Bool invoker_invoke_gdbserver (pid_t pid)
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if defined(VGP_loongarch64_linux)
|
|
||||||
- if (!setregs(pid, &user_mod.gpr, sizeof(user_mod.gpr))) {
|
|
||||||
-#else
|
|
||||||
if (!setregs(pid, &user_mod.regs, sizeof(user_mod.regs))) {
|
|
||||||
-#endif
|
|
||||||
detach_from_all_threads(pid);
|
|
||||||
return False;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.33.0
|
|
||||||
|
|
||||||
@ -16,26 +16,33 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: valgrind
|
Name: valgrind
|
||||||
Version: 3.16.0
|
Version: 3.22.0
|
||||||
Release: 7
|
Release: 1
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Summary: An instrumentation framework for building dynamic analysis tools
|
Summary: An instrumentation framework for building dynamic analysis tools
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.valgrind.org/
|
URL: http://www.valgrind.org/
|
||||||
Source0: ftp://sourceware.org/pub/%{name}/%{name}-%{version}.tar.bz2
|
Source0: https://sourceware.org/pub/%{name}/%{name}-%{version}.tar.bz2
|
||||||
|
|
||||||
Patch1: valgrind-3.9.0-cachegrind-improvements.patch
|
Patch1: valgrind-3.9.0-cachegrind-improvements.patch
|
||||||
Patch2: valgrind-3.9.0-helgrind-race-supp.patch
|
Patch2: valgrind-3.9.0-ldso-supp.patch
|
||||||
Patch3: valgrind-3.9.0-ldso-supp.patch
|
|
||||||
Patch4: backport-Generate-a-ENOSYS-sys_ni_syscall-for-clone3-on-all-linux-arches.patch
|
|
||||||
Patch5: valgrind-Implement-linux-rseq-syscall-as-ENOSYS.patch
|
|
||||||
Patch6: Add-LOONGARCH64-Linux-support.patch
|
|
||||||
Patch7: valgrind-Sync-LoongArch-with-glibc-2.36.patch
|
|
||||||
%if "%{toolchain}" == "clang"
|
%if "%{toolchain}" == "clang"
|
||||||
Patch8: Add-AArch64-clang-longjmp-support.patch
|
Patch3: Add-AArch64-clang-longjmp-support.patch
|
||||||
%endif
|
%endif
|
||||||
|
# Add LOONGARCH64 support
|
||||||
|
Patch4: Add-LOONGARCH64-Linux-support.patch
|
||||||
|
# valgrind-monitor.py regular expressions should use raw strings
|
||||||
|
# https://bugs.kde.org/show_bug.cgi?id=476708
|
||||||
|
Patch5: valgrind-3.22.0-valgrind-monitor-python-re.patch
|
||||||
|
# valgrind 3.22.0 fails on assertion when loading debuginfo
|
||||||
|
# https://bugs.kde.org/show_bug.cgi?id=476548
|
||||||
|
Patch6: valgrind-3.22.0-rodata.patch
|
||||||
|
# Add fchmodat2 syscall on linux
|
||||||
|
# https://bugs.kde.org/show_bug.cgi?id=477198
|
||||||
|
Patch7: valgrind-3.22.0-fchmodat2.patch
|
||||||
|
|
||||||
BuildRequires: glibc glibc-devel gdb procps gcc-c++ perl(Getopt::Long)
|
BuildRequires: glibc glibc-devel gdb procps gcc-c++ perl(Getopt::Long)
|
||||||
|
BuildRequires: automake autoconf
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Valgrind is an instrumentation framework for building dynamic analysis tools. There are
|
Valgrind is an instrumentation framework for building dynamic analysis tools. There are
|
||||||
@ -55,6 +62,9 @@ This files contains the development files for %{name}.
|
|||||||
%autosetup -n %{name}-%{version} -p1
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# Some patches (might) touch Makefile.am or configure.ac files.
|
||||||
|
# Just always autoreconf so we don't need patches to prebuild files.
|
||||||
|
./autogen.sh
|
||||||
CC=%{__cc}
|
CC=%{__cc}
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
mkdir -p shared/libgcc/32
|
mkdir -p shared/libgcc/32
|
||||||
@ -94,13 +104,12 @@ popd
|
|||||||
%doc %{_datadir}/doc/%{name}/{html,*.pdf}
|
%doc %{_datadir}/doc/%{name}/{html,*.pdf}
|
||||||
%exclude %{_datadir}/doc/%{name}/*.ps
|
%exclude %{_datadir}/doc/%{name}/*.ps
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
%dir %{_libdir}/%{name}
|
%dir %{_libexecdir}/%{name}
|
||||||
%{_libdir}/%{name}/*[^ao]
|
%{_libexecdir}/valgrind/*[^o]
|
||||||
%attr(0755,root,root) %{_libdir}/valgrind/vgpreload*-%{arch_val}-*so
|
%attr(0755,root,root) %{_libexecdir}/valgrind/vgpreload*-%{arch_val}-*so
|
||||||
%if "%{arch_old_val}" != ""
|
%if "%{arch_old_val}" != ""
|
||||||
%{_libdir}/%{name}/vgpreload*-%{arch_old_val}-*so
|
%{_libdir}/%{name}/*-%{arch_old_val}-*
|
||||||
%endif
|
%endif
|
||||||
%{_libexecdir}/valgrind/*
|
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_includedir}/%{name}
|
%{_includedir}/%{name}
|
||||||
@ -111,6 +120,9 @@ popd
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 08 2024 yaoxin <yao_xin001@hoperun.com> - 1:3.22.0-1
|
||||||
|
- Upgrade to 3.22.0
|
||||||
|
|
||||||
* Tue Aug 29 2023 liyunfei <liyunfei33@huawei.com> - 1:3.16.0-7
|
* Tue Aug 29 2023 liyunfei <liyunfei33@huawei.com> - 1:3.16.0-7
|
||||||
- Add clang compile support on AArch64
|
- Add clang compile support on AArch64
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user