aboutsummaryrefslogtreecommitdiffstats
path: root/package/devel/valgrind
diff options
context:
space:
mode:
Diffstat (limited to 'package/devel/valgrind')
-rw-r--r--package/devel/valgrind/Makefile10
-rw-r--r--package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch143
-rw-r--r--package/devel/valgrind/patches/100-fix_configure_check.patch2
-rw-r--r--package/devel/valgrind/patches/130-fix_arm_arch_detection.patch2
-rw-r--r--package/devel/valgrind/patches/130-mips_fix_soft_float.patch12
5 files changed, 156 insertions, 13 deletions
diff --git a/package/devel/valgrind/Makefile b/package/devel/valgrind/Makefile
index 829f37569e9..9f8a2e9e79a 100644
--- a/package/devel/valgrind/Makefile
+++ b/package/devel/valgrind/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=valgrind
-PKG_VERSION:=3.16.1
+PKG_VERSION:=3.22.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
-PKG_HASH:=c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca
+PKG_SOURCE_URL:=https://sourceware.org/pub/valgrind/
+PKG_HASH:=c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0+
@@ -22,7 +22,7 @@ PKG_CPE_ID:=cpe:/a:valgrind:valgrind
PKG_FIXUP = autoreconf
PKG_INSTALL := 1
PKG_BUILD_PARALLEL := 1
-PKG_USE_MIPS16:=0
+PKG_BUILD_FLAGS:=no-mips16
PKG_SSP:=0
STRIP:=:
@@ -33,7 +33,7 @@ include $(INCLUDE_DIR)/kernel.mk
define Package/valgrind
SECTION:=devel
CATEGORY:=Development
- DEPENDS:=@mips||mipsel||i386||x86_64||powerpc||arm_v7||aarch64 +libpthread +librt
+ DEPENDS:=@mips||mipsel||mips64||mips64el||i386||x86_64||powerpc||arm_v7||aarch64 +libpthread +librt
TITLE:=debugging and profiling tools for Linux
URL:=http://www.valgrind.org
endef
diff --git a/package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch b/package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch
new file mode 100644
index 00000000000..5967b0cadac
--- /dev/null
+++ b/package/devel/valgrind/patches/010-mips-Fix-new-syscall-numbers.patch
@@ -0,0 +1,143 @@
+From 82e935c564699456a766044faa39367b47cce793 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sun, 31 Oct 2021 23:11:11 +0100
+Subject: [PATCH] mips: Fix new syscall numbers
+
+The MIPS32 and MIPS64 O32 ABI are adding 4000 to all syscall numbers.
+The MIPS64 N64 ABI adds 5000 to each syscall and the MIPS64 N32 ABI adds
+6000 to each syscall number. We can not use the shared file for MIPS and
+have to define this for each sycall separately.
+
+Without this change valgrind is not able to detect new syscalls like
+clock_gettime64 correctly.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ include/pub_tool_vkiscnums_asm.h | 3 --
+ include/vki/vki-scnums-mips32-linux.h | 40 +++++++++++++++++++++++++++
+ include/vki/vki-scnums-mips64-linux.h | 40 +++++++++++++++++++++++++++
+ 3 files changed, 80 insertions(+), 3 deletions(-)
+
+--- a/include/pub_tool_vkiscnums_asm.h
++++ b/include/pub_tool_vkiscnums_asm.h
+@@ -63,15 +63,12 @@
+ # include "vki/vki-scnums-arm64-linux.h"
+
+ #elif defined(VGP_mips32_linux)
+-# include "vki/vki-scnums-shared-linux.h"
+-# include "vki/vki-scnums-32bit-linux.h"
+ # include "vki/vki-scnums-mips32-linux.h"
+
+ #elif defined(VGP_nanomips_linux)
+ # include "vki/vki-scnums-nanomips-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)
+--- a/include/vki/vki-scnums-mips32-linux.h
++++ b/include/vki/vki-scnums-mips32-linux.h
+@@ -401,6 +401,46 @@
+ #define __NR_pkey_free (__NR_Linux + 365)
+ #define __NR_statx (__NR_Linux + 366)
+
++#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_faccessat2 (__NR_Linux + 439)
++
++#define __NR_epoll_pwait2 (__NR_Linux + 441)
++
+ /*
+ * Offset of the last Linux o32 flavoured syscall
+ */
+--- a/include/vki/vki-scnums-mips64-linux.h
++++ b/include/vki/vki-scnums-mips64-linux.h
+@@ -363,6 +363,26 @@
+ #define __NR_pkey_free (__NR_Linux + 325)
+ #define __NR_statx (__NR_Linux + 326)
+
++#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_faccessat2 (__NR_Linux + 439)
++
++#define __NR_epoll_pwait2 (__NR_Linux + 441)
++
+ #elif defined(VGABI_N32)
+
+ /*
+@@ -702,6 +722,26 @@
+ #define __NR_pkey_free (__NR_Linux + 329)
+ #define __NR_statx (__NR_Linux + 330)
+
++#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_faccessat2 (__NR_Linux + 439)
++
++#define __NR_epoll_pwait2 (__NR_Linux + 441)
++
+ #else
+ #error unknown mips64 abi
+ #endif
diff --git a/package/devel/valgrind/patches/100-fix_configure_check.patch b/package/devel/valgrind/patches/100-fix_configure_check.patch
index 6e9384ff887..5fa51977e7b 100644
--- a/package/devel/valgrind/patches/100-fix_configure_check.patch
+++ b/package/devel/valgrind/patches/100-fix_configure_check.patch
@@ -1,6 +1,6 @@
--- a/configure.ac
+++ b/configure.ac
-@@ -345,7 +345,7 @@ case "${host_os}" in
+@@ -364,7 +364,7 @@ case "${host_os}" in
# Ok, this is linux. Check the kernel version
AC_MSG_CHECKING([for the kernel version])
diff --git a/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch b/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
index 26291f777bb..9a7b591e707 100644
--- a/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
+++ b/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
@@ -6,7 +6,7 @@ Last-Update: 2013-11-30
--- a/configure.ac
+++ b/configure.ac
-@@ -252,7 +252,7 @@ case "${host_cpu}" in
+@@ -271,7 +271,7 @@ case "${host_cpu}" in
ARCH_MAX="s390x"
;;
diff --git a/package/devel/valgrind/patches/130-mips_fix_soft_float.patch b/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
index 05be099ca5e..7c7122ecac9 100644
--- a/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
+++ b/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
@@ -14,7 +14,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
--- a/VEX/priv/guest_mips_helpers.c
+++ b/VEX/priv/guest_mips_helpers.c
-@@ -617,6 +617,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -616,6 +616,7 @@ extern UInt mips_dirtyhelper_calculate_F
flt_op inst )
{
UInt ret = 0;
@@ -22,7 +22,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
#if defined(__mips__)
VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
UInt loFsVal, hiFsVal, loFtVal, hiFtVal;
-@@ -699,6 +700,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -698,6 +699,7 @@ extern UInt mips_dirtyhelper_calculate_F
break;
}
#endif
@@ -30,7 +30,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
return ret;
}
-@@ -708,6 +710,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -707,6 +709,7 @@ extern UInt mips_dirtyhelper_calculate_F
flt_op inst )
{
UInt ret = 0;
@@ -38,7 +38,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
#if defined(__mips__) && ((__mips == 64) || \
(defined(__mips_isa_rev) && (__mips_isa_rev >= 2)))
#if defined(VGA_mips32)
-@@ -860,6 +863,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -859,6 +862,7 @@ extern UInt mips_dirtyhelper_calculate_F
break;
}
#endif
@@ -48,7 +48,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
--- a/coregrind/m_machine.c
+++ b/coregrind/m_machine.c
-@@ -1828,6 +1828,7 @@ Bool VG_(machine_get_hwcaps)( void )
+@@ -2109,6 +2109,7 @@ Bool VG_(machine_get_hwcaps)( void )
we are using alternative way to determine FP mode */
ULong result = 0;
@@ -56,7 +56,7 @@ This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
if (!VG_MINIMAL_SETJMP(env_unsup_insn)) {
__asm__ volatile (
".set push\n\t"
-@@ -1845,6 +1846,9 @@ Bool VG_(machine_get_hwcaps)( void )
+@@ -2126,6 +2127,9 @@ Bool VG_(machine_get_hwcaps)( void )
fpmode = (result != 0x3FF0000000000000ull);
}