diff --git a/.gitignore b/.gitignore index 1b94371..cbec41e 100644 --- a/.gitignore +++ b/.gitignore @@ -44,24 +44,3 @@ /valgrind-3.18.0.RC1.tar.bz2 /valgrind-3.18.1.tar.bz2 /valgrind-3.19.0.tar.bz2 -/valgrind-3.20.0.tar.bz2 -/valgrind-3.21.0.RC1.tar.bz2 -/valgrind-3.21.0.RC2.tar.bz2 -/valgrind-3.21.0.tar.bz2 -/valgrind-3.22.0.RC1.tar.bz2 -/valgrind-3.22.0.RC2.tar.bz2 -/valgrind-3.22.0.tar.bz2 -/valgrind-3.23.0.RC1.tar.bz2 -/valgrind-3.23.0.RC2.tar.bz2 -/valgrind-3.23.0.tar.bz2 -/valgrind-3.24.0.tar.bz2 -/valgrind-3.25.0.RC1.tar.bz2 -/valgrind-3.25.0.RC2.tar.bz2 -/valgrind-3.25.0.tar.bz2 -/valgrind-3.25.1.tar.bz2 -/valgrind-3.26.0.RC1.tar.bz2 -/valgrind-3.26.0.tar.bz2 -/valgrind-3.27.0.RC1.tar.bz2 -/valgrind-3.27.0.RC2.tar.bz2 -/valgrind-3.27.0.tar.bz2 -/valgrind-3.27.1.tar.bz2 diff --git a/rpminspect.yaml b/rpminspect.yaml index 0ebee4b..e2816ea 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -36,14 +36,6 @@ annocheck: # for the same reason as the standard tools (see above). - /usr/lib*/valgrind/*-*linux.a -debuginfo: - ignore: - # We add the debuginfo to vgpreload libraries because we want to show the - # user exactly where the issue is, which we cannot without always having - # the symtab around. The vgpreload libraries are really tiny, so it doesn't - # have a big impact on the package size. - - /usr/libexec/valgrind/vgpreload*.so - runpath: allowed_paths: # As described above, libmpiwrap is a wrapper against openmpi diff --git a/sources b/sources index f885857..e93a40c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (valgrind-3.27.1.tar.bz2) = 4522e345fe31bc10478f21ab261cf7b3e509d80fe98fd0c7c9778ac9a9f90e1d8fa6e54a37c2e23114c01c95131035103fc1e78661710d7f45f5d564a31c1015 +SHA512 (valgrind-3.19.0.tar.bz2) = f720a89dc4c4989cc5714bff9efe97529f71990bcfad7a92b889ce099c4326d6da07fa4d5fbab2e9125e20f352354f6178471e49e419b613a3c82c2a1c667ab2 diff --git a/valgrind-3.26.0-some-Wl-z-now.patch b/valgrind-3.16.0-some-Wl-z-now.patch similarity index 56% rename from valgrind-3.26.0-some-Wl-z-now.patch rename to valgrind-3.16.0-some-Wl-z-now.patch index ccf867b..79c3662 100644 --- a/valgrind-3.26.0-some-Wl-z-now.patch +++ b/valgrind-3.16.0-some-Wl-z-now.patch @@ -1,50 +1,69 @@ +commit d3c977726064ba09fed6dfc7daf22b16824c97b4 +Author: Mark Wielaard +Date: Fri May 24 18:24:56 2019 +0200 + + Add -Wl,-z,now to some binaries. + diff --git a/auxprogs/Makefile.am b/auxprogs/Makefile.am -index 2b8703cf1a63..8cb828b85c57 100644 +index 1b7842b..e211eec 100644 --- a/auxprogs/Makefile.am +++ b/auxprogs/Makefile.am -@@ -50,7 +50,7 @@ valgrind_listener_SOURCES = valgrind-listener.c +@@ -32,7 +32,7 @@ valgrind_listener_SOURCES = valgrind-listener.c valgrind_listener_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind - valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fhosted -fstack-protector-strong + valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong valgrind_listener_CCASFLAGS = $(AM_CCASFLAGS_PRI) -valgrind_listener_LDFLAGS = $(AM_CFLAGS_PRI) +valgrind_listener_LDFLAGS = $(AM_CFLAGS_PRI) -Wl,-z,now if VGCONF_PLATVARIANT_IS_ANDROID valgrind_listener_CFLAGS += -static endif -@@ -69,7 +69,7 @@ valgrind_di_server_SOURCES = valgrind-di-server.c +@@ -51,7 +51,7 @@ valgrind_di_server_SOURCES = valgrind-di-server.c valgrind_di_server_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind - valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fhosted -fstack-protector-strong + valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong valgrind_di_server_CCASFLAGS = $(AM_CCASFLAGS_PRI) -valgrind_di_server_LDFLAGS = $(AM_CFLAGS_PRI) +valgrind_di_server_LDFLAGS = $(AM_CFLAGS_PRI) -Wl,-z,now if VGCONF_PLATVARIANT_IS_ANDROID valgrind_di_server_CFLAGS += -static endif -@@ -104,7 +104,7 @@ getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = getoff.c +@@ -86,7 +86,7 @@ getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = getoff.c getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) - getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fhosted -fstack-protector-strong + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fstack-protector-strong getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CCASFLAGS = $(AM_CCASFLAGS_PRI) -getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ +getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ -Wl,-z,now if HAVE_DLINFO_RTLD_DI_TLS_MODID getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD = $(LDADD) -ldl endif +diff --git a/cachegrind/Makefile.am b/cachegrind/Makefile.am +index f572741..1c07e50 100644 +--- a/cachegrind/Makefile.am ++++ b/cachegrind/Makefile.am +@@ -27,7 +27,7 @@ cg_merge_SOURCES = cg_merge.c + cg_merge_CPPFLAGS = $(AM_CPPFLAGS_PRI) + cg_merge_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + cg_merge_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-cg_merge_LDFLAGS = $(AM_CFLAGS_PRI) ++cg_merge_LDFLAGS = $(AM_CFLAGS_PRI) -Wl,-z,now + # If there is no secondary platform, and the platforms include x86-darwin, + # then the primary platform must be x86-darwin. Hence: + if ! VGCONF_HAVE_PLATFORM_SEC diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am -index 0bcb4a4f423f..59fc48052e50 100644 +index 3c73210..fb6b7bb 100644 --- a/coregrind/Makefile.am +++ b/coregrind/Makefile.am -@@ -64,7 +64,7 @@ RANLIB = ${LTO_RANLIB} +@@ -57,7 +57,7 @@ RANLIB = ${LTO_RANLIB} valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) - valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fhosted -fstack-protector-strong + valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) -valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ +valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ -Wl,-z,now # If there is no secondary platform, and the platforms include x86-darwin, # then the primary platform must be x86-darwin. Hence: if ! VGCONF_HAVE_PLATFORM_SEC -@@ -106,7 +106,7 @@ endif - vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI) $(GDB_SCRIPTS_DIR) - vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fhosted -fstack-protector-strong +@@ -96,7 +96,7 @@ endif + vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI) + vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI) -vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ +vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ -Wl,-z,now diff --git a/valgrind-3.26.0-some-stack-protector.patch b/valgrind-3.16.0-some-stack-protector.patch similarity index 59% rename from valgrind-3.26.0-some-stack-protector.patch rename to valgrind-3.16.0-some-stack-protector.patch index ca00eac..324c7d3 100644 --- a/valgrind-3.26.0-some-stack-protector.patch +++ b/valgrind-3.16.0-some-stack-protector.patch @@ -1,49 +1,59 @@ +commit b73fb7a614e1b5d60af23fb0752b5cead995e02e +Author: Mark Wielaard +Date: Sun Apr 14 00:30:05 2019 +0200 + + Remove no-stack-protector, add stack-protector-strong to some. + diff --git a/auxprogs/Makefile.am b/auxprogs/Makefile.am -index d96e7fd0a968..2b8703cf1a63 100644 +index 56cc5ef..1b7842b 100644 --- a/auxprogs/Makefile.am +++ b/auxprogs/Makefile.am -@@ -48,7 +48,7 @@ bin_PROGRAMS = valgrind-listener valgrind-di-server +@@ -30,7 +30,7 @@ bin_PROGRAMS = valgrind-listener valgrind-di-server valgrind_listener_SOURCES = valgrind-listener.c valgrind_listener_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind --valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fhosted -+valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fhosted -fstack-protector-strong +-valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) ++valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong valgrind_listener_CCASFLAGS = $(AM_CCASFLAGS_PRI) valgrind_listener_LDFLAGS = $(AM_CFLAGS_PRI) if VGCONF_PLATVARIANT_IS_ANDROID -@@ -67,7 +67,7 @@ endif +@@ -49,7 +49,7 @@ endif valgrind_di_server_SOURCES = valgrind-di-server.c valgrind_di_server_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind --valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fhosted -+valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fhosted -fstack-protector-strong +-valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) ++valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong valgrind_di_server_CCASFLAGS = $(AM_CCASFLAGS_PRI) valgrind_di_server_LDFLAGS = $(AM_CFLAGS_PRI) if VGCONF_PLATVARIANT_IS_ANDROID -@@ -102,7 +102,7 @@ endif +@@ -84,7 +84,7 @@ endif getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = getoff.c getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) --getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fhosted -+getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fhosted -fstack-protector-strong +-getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) ++getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fstack-protector-strong getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CCASFLAGS = $(AM_CCASFLAGS_PRI) getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ if HAVE_DLINFO_RTLD_DI_TLS_MODID -@@ -119,7 +119,7 @@ endif - if VGCONF_HAVE_PLATFORM_SEC - getoff_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = getoff.c - getoff_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) --getoff_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -fhosted -+getoff_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -fhosted -fstack-protector-strong - getoff_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CCASFLAGS = $(AM_CCASFLAGS_SEC) - getoff_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_SEC) - if HAVE_DLINFO_RTLD_DI_TLS_MODID +diff --git a/cachegrind/Makefile.am b/cachegrind/Makefile.am +index f8447a1..f572741 100644 +--- a/cachegrind/Makefile.am ++++ b/cachegrind/Makefile.am +@@ -25,7 +25,7 @@ bin_PROGRAMS = cg_merge + + cg_merge_SOURCES = cg_merge.c + cg_merge_CPPFLAGS = $(AM_CPPFLAGS_PRI) +-cg_merge_CFLAGS = $(AM_CFLAGS_PRI) ++cg_merge_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + cg_merge_CCASFLAGS = $(AM_CCASFLAGS_PRI) + cg_merge_LDFLAGS = $(AM_CFLAGS_PRI) + # If there is no secondary platform, and the platforms include x86-darwin, diff --git a/configure.ac b/configure.ac -index 90fafaf1c557..84a3d22c5bff 100644 +index f8c798b..ccc8f52 100755 --- a/configure.ac +++ b/configure.ac -@@ -3004,24 +3004,24 @@ - fi +@@ -2352,24 +2352,24 @@ + AM_CONDITIONAL([HAVE_ALIGNED_CXX_ALLOC], [test x$ac_have_aligned_cxx_alloc = xyes]) # does this compiler support -fno-stack-protector ? -AC_MSG_CHECKING([if gcc accepts -fno-stack-protector]) @@ -85,24 +95,24 @@ index 90fafaf1c557..84a3d22c5bff 100644 # does this compiler support -finline-functions ? diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am -index 4ead1542b0c7..0bcb4a4f423f 100644 +index 94030fd..3c73210 100644 --- a/coregrind/Makefile.am +++ b/coregrind/Makefile.am -@@ -62,7 +62,7 @@ AR = ${LTO_AR} +@@ -55,7 +55,7 @@ AR = ${LTO_AR} RANLIB = ${LTO_RANLIB} valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) --valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fhosted -+valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fhosted -fstack-protector-strong +-valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) ++valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ # If there is no secondary platform, and the platforms include x86-darwin, -@@ -104,7 +104,7 @@ vgdb_SOURCES += vgdb-invoker-freebsd.c +@@ -94,7 +94,7 @@ vgdb_SOURCES += vgdb-invoker-solaris.c endif - vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI) $(GDB_SCRIPTS_DIR) --vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fhosted -+vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fhosted -fstack-protector-strong + vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI) +-vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) ++vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI) vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ if VGCONF_PLATVARIANT_IS_ANDROID diff --git a/valgrind-3.19.0-ld-so-strncmp.patch b/valgrind-3.19.0-ld-so-strncmp.patch new file mode 100644 index 0000000..91007ef --- /dev/null +++ b/valgrind-3.19.0-ld-so-strncmp.patch @@ -0,0 +1,25 @@ +commit 947388eb043ea1c44b37df94046e1eee790ad776 +Author: Mike Crowe +Date: Mon Sep 9 14:16:16 2019 +0100 + + Intercept strncmp for glibc ld.so v2.28+ + + In glibc 5aad5f617892e75d91d4c8fb7594ff35b610c042 (first released in + v2.28) a call to strncmp was added to dl-load.c:is_dst. This causes + valgrind to complain about glibc's highly-optimised strncmp performing + sixteen-byte reads on short strings in ld.so. Let's intercept strncmp in + ld.so too so we use valgrind's simple version to avoid this problem. + +diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c +index 3b42b3a87..5396e83be 100644 +--- a/shared/vg_replace_strmem.c ++++ b/shared/vg_replace_strmem.c +@@ -710,6 +710,8 @@ static inline void my_exit ( int x ) + STRNCMP(VG_Z_LIBC_SONAME, __GI_strncmp) + STRNCMP(VG_Z_LIBC_SONAME, __strncmp_sse2) + STRNCMP(VG_Z_LIBC_SONAME, __strncmp_sse42) ++ STRNCMP(VG_Z_LD_LINUX_SO_2, strncmp) ++ STRNCMP(VG_Z_LD_LINUX_X86_64_SO_2, strncmp) + + #elif defined(VGO_freebsd) + STRNCMP(VG_Z_LIBC_SONAME, strncmp) diff --git a/valgrind-3.19.0-s390x-memmem.patch b/valgrind-3.19.0-s390x-memmem.patch new file mode 100644 index 0000000..669b78e --- /dev/null +++ b/valgrind-3.19.0-s390x-memmem.patch @@ -0,0 +1,231 @@ +From 42ca1c480a5bca408a54c6a24d2be2c081d121ac Mon Sep 17 00:00:00 2001 +From: Andreas Arnez +Date: Thu, 19 May 2022 13:54:06 +0200 +Subject: [PATCH] Bug 454040 - Add intercept for memmem on s390x + +Since memcheck may report false positives in an optimized version of memmem on +s390x, add an intercept for memmem on s390x platforms. +--- + shared/vg_replace_strmem.c | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c +index 5396e83be..d28e74206 100644 +--- a/shared/vg_replace_strmem.c ++++ b/shared/vg_replace_strmem.c +@@ -103,6 +103,7 @@ + 20430 WMEMCHR + 20440 WCSNLEN + 20450 WSTRNCMP ++ 20460 MEMMEM + */ + + #if defined(VGO_solaris) +@@ -1785,6 +1786,41 @@ static inline void my_exit ( int x ) + + #endif + ++/*---------------------- memmem ----------------------*/ ++ ++#define MEMMEM(soname, fnname) \ ++ void* VG_REPLACE_FUNCTION_EZU(20460,soname,fnname) \ ++ (const void* haystack, SizeT hlen, const void* needle, SizeT nlen); \ ++ void* VG_REPLACE_FUNCTION_EZU(20460,soname,fnname) \ ++ (const void* haystack, SizeT hlen, const void* needle, SizeT nlen) \ ++ { \ ++ const HChar* h = haystack; \ ++ const HChar* n = needle; \ ++ \ ++ /* If the needle is the empty string, match immediately. */ \ ++ if (nlen == 0) return CONST_CAST(void *,h); \ ++ \ ++ HChar n0 = n[0]; \ ++ \ ++ for (; hlen >= nlen; hlen--, h++) { \ ++ if (h[0] != n0) continue; \ ++ \ ++ UWord i; \ ++ for (i = 1; i < nlen; i++) { \ ++ if (n[i] != h[i]) \ ++ break; \ ++ } \ ++ if (i == nlen) \ ++ return CONST_CAST(HChar *,h); \ ++ \ ++ } \ ++ return NULL; \ ++ } ++ ++#if defined(VGP_s390x_linux) ++ MEMMEM(VG_Z_LIBC_SONAME, memmem) ++#endif ++ + + /*---------------------- strpbrk ----------------------*/ + +-- +2.31.1 + +From 4d675f309bcd2d4e9e2b9e6f4aba30f85116bb9b Mon Sep 17 00:00:00 2001 +From: Mark Wielaard +Date: Thu, 19 May 2022 18:08:40 -0400 +Subject: [PATCH] Add memmem memcheck tests + +--- + memcheck/tests/Makefile.am | 3 ++ + memcheck/tests/filter_memmem | 5 ++ + memcheck/tests/memmem.c | 81 ++++++++++++++++++++++++++++++++ + memcheck/tests/memmem.stderr.exp | 2 + + memcheck/tests/memmem.vgtest | 3 ++ + 5 files changed, 94 insertions(+) + create mode 100755 memcheck/tests/filter_memmem + create mode 100644 memcheck/tests/memmem.c + create mode 100644 memcheck/tests/memmem.stderr.exp + create mode 100644 memcheck/tests/memmem.vgtest + +diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am +index eb9487272..4d181c1ac 100644 +--- a/memcheck/tests/Makefile.am ++++ b/memcheck/tests/Makefile.am +@@ -79,6 +79,7 @@ dist_noinst_SCRIPTS = \ + filter_strchr \ + filter_varinfo3 \ + filter_memcheck \ ++ filter_memmem \ + filter_overlaperror \ + filter_malloc_free \ + filter_sized_delete +@@ -220,6 +221,7 @@ EXTRA_DIST = \ + memalign2.stderr.exp memalign2.vgtest \ + memcmptest.stderr.exp memcmptest.stderr.exp2 \ + memcmptest.stdout.exp memcmptest.vgtest \ ++ memmem.stderr.exp memmem.vgtest \ + mempool.stderr.exp mempool.vgtest \ + mempool2.stderr.exp mempool2.vgtest \ + metadata.stderr.exp metadata.stdout.exp metadata.vgtest \ +@@ -417,6 +419,7 @@ check_PROGRAMS = \ + malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 \ + match-overrun \ + memalign_test memalign2 memcmptest mempool mempool2 mmaptest \ ++ memmem \ + mismatches new_override metadata \ + nanoleak_supp nanoleak2 new_nothrow \ + noisy_child \ +diff --git a/memcheck/tests/filter_memmem b/memcheck/tests/filter_memmem +new file mode 100755 +index 000000000..f4a40b2d1 +--- /dev/null ++++ b/memcheck/tests/filter_memmem +@@ -0,0 +1,5 @@ ++#! /bin/sh ++ ++# Too many memmem implementations and overrides. ++# So just keep the main file lines. ++./filter_stderr "$@" | grep " main (memmem.c:" +diff --git a/memcheck/tests/memmem.c b/memcheck/tests/memmem.c +new file mode 100644 +index 000000000..d627076e3 +--- /dev/null ++++ b/memcheck/tests/memmem.c +@@ -0,0 +1,81 @@ ++#define _GNU_SOURCE ++#include ++#include ++#include ++ ++/* mallocs an mem block and fills it with A. A needs to be a zero ++ terminated string. The A string chars, minus the terminating zero ++ are copied into the returned mem block. */ ++static void * ++create_mem (const char *a) ++{ ++ size_t len = strlen (a); ++ void *mem = malloc (len); ++ memcpy (mem, a, len); ++ return mem; ++} ++ ++int ++main () ++{ ++ char *haystack; ++ char *needle; ++ ++ haystack = create_mem ("a"); ++ needle = create_mem ("a"); ++ assert (memmem (haystack, 0, needle, 0) == haystack); ++ assert (memmem (haystack, 1, needle, 0) == haystack); ++ assert (memmem (haystack, 0, needle, 1) == NULL); ++ assert (memmem (haystack, 1, needle, 1) == haystack); ++ free (haystack); ++ free (needle); ++ ++ haystack = create_mem ("abc"); ++ needle = create_mem ("bc"); ++ assert (memmem (haystack, 3, needle, 0) == haystack); ++ assert (memmem (haystack, 3, needle, 2) == haystack + 1); ++ assert (memmem (haystack + 1, 2, needle, 2) == haystack + 1); ++ assert (memmem (haystack + 2, 1, needle, 2) == NULL); ++ free (haystack); ++ free (needle); ++ ++ haystack = create_mem ("abcabcabc"); ++ needle = create_mem ("bca"); ++ assert (memmem (haystack, 9, needle, 3) == haystack + 1); ++ free (haystack); ++ free (needle); ++ ++ haystack = create_mem ("abcabcabc"); ++ needle = create_mem ("bcad"); ++ assert (memmem (haystack, 9, needle, 4) == NULL); ++ free (haystack); ++ free (needle); ++ ++ haystack = create_mem ("xxxxxxxxxxxxxxxxxABC"); ++ needle = create_mem ("ABCD"); ++ assert (memmem (haystack, 20, needle, 2) == haystack + 17); ++ assert (memmem (haystack + 3, 17, needle, 2) == haystack + 17); ++ assert (memmem (haystack + 15, 5, needle, 2) == haystack + 17); ++ assert (memmem (haystack, 20, needle, 3) == haystack + 17); ++ assert (memmem (haystack + 3, 17, needle, 3) == haystack + 17); ++ assert (memmem (haystack + 15, 5, needle, 3) == haystack + 17); ++ assert (memmem (haystack, 20, needle, 4) == NULL); ++ assert (memmem (haystack + 3, 5, needle, 4) == NULL); ++ assert (memmem (haystack + 15, 5, needle, 4) == NULL); ++ free (haystack); ++ free (needle); ++ ++ haystack = malloc (1); ++ needle = create_mem ("a"); ++ assert (memmem (haystack, 1, needle, 1) == NULL); ++ free (haystack); ++ free (needle); ++ ++ haystack = create_mem ("A"); ++ needle = malloc (1); ++ assert (memmem (haystack, 1, needle, 1) == NULL); ++ free (haystack); ++ free (needle); ++ ++ return 0; ++} +diff --git a/memcheck/tests/memmem.stderr.exp b/memcheck/tests/memmem.stderr.exp +new file mode 100644 +index 000000000..b4612fbd4 +--- /dev/null ++++ b/memcheck/tests/memmem.stderr.exp +@@ -0,0 +1,2 @@ ++ by 0x........: main (memmem.c:70) ++ by 0x........: main (memmem.c:76) +diff --git a/memcheck/tests/memmem.vgtest b/memcheck/tests/memmem.vgtest +new file mode 100644 +index 000000000..6d12895df +--- /dev/null ++++ b/memcheck/tests/memmem.vgtest +@@ -0,0 +1,3 @@ ++prog: memmem ++vgopts: -q ++stderr_filter: filter_memmem +-- +2.18.4 + diff --git a/valgrind.spec b/valgrind.spec index f620ab3..9f65414 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -2,42 +2,36 @@ Summary: Dynamic analysis tools to detect memory or thread bugs and profile Name: %{?scl_prefix}valgrind -Version: 3.27.1 -Release: 2%{?dist} +Version: 3.19.0 +Release: 3%{?dist} Epoch: 1 - -# This ignores licenses that are only found in the test or perf sources -# we only care about those license statements found in sources that end -# up in the binary packages. One piece of code for which we don't have -# a license specifier is in coregrind/m_main.c for some Hacker's Delight -# public domain code, which is only compiled into Darwin binaries, which -# we don't create. Also some subpackages have their own license tags. -License: GPL-3.0-or-later AND bzip2-1.0.6 AND (GPL-3.0-or-later AND LGPL-2.0-or-later) AND (GPL-3.0-or-later AND ISC) AND (GPL-3.0-or-later AND Unlicense) AND (GPL-3.0-or-later AND Zlib) AND (GPL-3.0-or-later WITH GCC-exception-2.0) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-3.0-or-later AND BSD-3-Clause) AND (GPL-3.0-or-later AND (MIT OR NCSA)) AND CMU-Mach AND (GPL-3.0-or-later AND X11 AND BSD-3-Clause) AND X11 AND (GPL-3.0-or-later AND LGPL-2.0-or-later) AND (GPL-2.0-or-later WITH Autoconf-exception-generic) AND (GPL-3.0-or-later WITH Autoconf-exception-generic-3.0) AND FSFULLR AND FSFAP AND FSFUL AND FSFULLRWD +License: GPLv2+ URL: https://www.valgrind.org/ +# Only necessary for RHEL, will be ignored on Fedora + # Are we building for a Software Collection? %{?scl:%global is_scl 1} %{!?scl:%global is_scl 0} # We never want the openmpi subpackage when building a software collecton. # We always want it for fedora. -# We only want it for older rhel. -# And on fedora > 39 i386 dropped openmpi. +# We only want it for older rhel. But not s390x for too old rhel. %if %{is_scl} %global build_openmpi 0 %else %if 0%{?fedora} - %ifarch %{ix86} - %global build_openmpi (%{?fedora} < 40) - %else - %global build_openmpi 1 - %endif + %global build_openmpi 1 %endif %if 0%{?rhel} %if 0%{?rhel} > 7 %global build_openmpi 0 %else - %global build_openmpi 1 + %ifarch s390x + %global build_openmpi (%{?rhel} > 6) + %else + %global build_openmpi 1 + %endif %endif %endif %endif @@ -57,11 +51,17 @@ URL: https://www.valgrind.org/ # Whether to run the full regtest or only a limited set # The full regtest includes gdb_server integration tests # and experimental tools. -# Don't run them when creating scl, the gdb_server tests might hang. +# Only run full regtests on fedora, but not on older rhel +# or when creating scl, the gdb_server tests might hang. %if %{is_scl} %global run_full_regtest 0 %else - %global run_full_regtest 1 + %if 0%{?fedora} + %global run_full_regtest 1 + %endif + %if 0%{?rhel} + %global run_full_regtest (%rhel >= 7) + %endif %endif # Generating minisymtabs doesn't really work for the staticly linked @@ -80,10 +80,16 @@ Patch1: valgrind-3.9.0-cachegrind-improvements.patch Patch2: valgrind-3.9.0-ldso-supp.patch # Add some stack-protector -Patch3: valgrind-3.26.0-some-stack-protector.patch +Patch3: valgrind-3.16.0-some-stack-protector.patch # Add some -Wl,z,now. -Patch4: valgrind-3.26.0-some-Wl-z-now.patch +Patch4: valgrind-3.16.0-some-Wl-z-now.patch + +# KDE#434764 # iconv_open causes ld.so v2.28+ to execute optimised strncmp +Patch5: valgrind-3.19.0-ld-so-strncmp.patch + +# KDE#454040 s390x: False-positive memcheck:cond in memmem on arch13 systems +Patch6: valgrind-3.19.0-s390x-memmem.patch BuildRequires: make BuildRequires: glibc-devel @@ -117,27 +123,24 @@ BuildRequires: docbook-dtds # For testing debuginfod-find %if 0%{?fedora} > 29 || 0%{?rhel} > 7 -BuildRequires: elfutils-debuginfod BuildRequires: elfutils-debuginfod-client # For using debuginfod at runtime Recommends: elfutils-debuginfod-client %endif -# Optional subpackages -Recommends: %{?scl_prefix}valgrind-docs = %{epoch}:%{version}-%{release} -Recommends: %{?scl_prefix}valgrind-scripts = %{epoch}:%{version}-%{release} -Recommends: %{?scl_prefix}valgrind-gdb = %{epoch}:%{version}-%{release} - -# For running the testsuite. -# Some of the python scripts require python 3.9+ -BuildRequires: python3-devel - %{?scl:Requires:%scl_runtime} +# We need to fixup selinux file context when doing a scl build. +# In RHEL6 we might need to fix up the labels even though the +# meta package sets up a fs equivalence. See post. +%if 0%{?rhel} == 6 +%{?scl:Requires(post): /sbin/restorecon} +%endif + # We could use %%valgrind_arches as defined in redhat-rpm-config # But that is really for programs using valgrind, it defines the # set of architectures that valgrind works correctly on. -ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 riscv64 +ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 # Define valarch, the architecture name that valgrind uses # And only_arch, the configure option to only build for that arch. @@ -173,10 +176,6 @@ ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 riscv64 %define valarch arm64 %define only_arch --enable-only64bit %endif -%ifarch riscv64 -%define valarch riscv64 -%define only_arch --enable-only64bit -%endif %description Valgrind is an instrumentation framework for building dynamic analysis @@ -191,48 +190,11 @@ profiler (callgrind), and a heap profiler (massif). %package devel Summary: Development files for valgrind aware programs -# This is really Hybrid-BSD -# https://fedoraproject.org/wiki/Licensing:BSD#Hybrid_BSD_(half_BSD,_half_zlib) -# But that doesnt have a SPDX identifier yet -# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/422 -License: bzip2-1.0.6 -# These are just the header files, so strictly speaking you don't -# need valgrind itself unless you are testing your builds. This used -# to be a Requires, so people might depend on the package pulling in -# the core valgrind package, so make it at least a weak dependency. -Recommends: %{?scl_prefix}valgrind = %{epoch}:%{version}-%{release} +Requires: %{?scl_prefix}valgrind = %{epoch}:%{version}-%{release} %description devel Header files and libraries for development of valgrind aware programs. -%package docs -Summary: Documentation for valgrind tools, scripts and gdb integration -License: GFDL-1.2-or-later - -%description docs -Documentation in html and pdf, plus man pages for valgrind tools and scripts. - -%package scripts -Summary: Scripts for post-processing valgrind tool output -License: GPL-3.0-or-later AND (GPL-3.0-or-later OR MPL-2.0) -# Most scripts can be used as is for post-processing a valgrind tool run. -# But callgrind_control uses vgdb. -Recommends: %{?scl_prefix}valgrind-gdb = %{epoch}:%{version}-%{release} - -%description scripts -Perl and Python scripts for post-processing valgrind tool output. - -%package gdb -Summary: Tools for integrating valgrind and gdb -License: GPL-3.0-or-later -Requires: %{?scl_prefix}valgrind = %{epoch}:%{version}-%{release} -# vgdb can be used without gdb, just to control valgrind. -# But normally you use it together with both valgrind and gdb. -Recommends: gdb - -%description gdb -Tools and support files for integrating valgrind and gdb. - %if %{build_tools_devel} %package tools-devel Summary: Development files for building valgrind tools. @@ -246,8 +208,6 @@ Header files and libraries for development of valgrind tools. %if %{build_openmpi} %package openmpi Summary: OpenMPI support for valgrind -# See above, Hybrid-BSD like. -License: bzip2-1.0.6 Requires: %{?scl_prefix}valgrind = %{epoch}:%{version}-%{release} %description openmpi @@ -259,23 +219,36 @@ Valgrind User Manual for details. %prep %setup -q -n %{?scl:%{pkg_name}}%{!?scl:%{name}}-%{version} -%patch -P1 -p1 -%patch -P2 -p1 -%patch -P3 -p1 -%patch -P4 -p1 +%patch1 -p1 +%patch2 -p1 + +# Old rhel gcc doesn't have -fstack-protector-strong. +%if 0%{?fedora} || 0%{?rhel} >= 7 +%patch3 -p1 +%patch4 -p1 +%endif + +%patch5 -p1 +%patch6 -p1 %build -# LTO triggers undefined symbols in valgrind. But valgrind has a -# --enable-lto configure time option that we will use instead. +# LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto +# configure time option, but that doesn't seem to help. +# Disable LTO for now. %define _lto_cflags %{nil} # Some patches (might) touch Makefile.am or configure.ac files. # Just always autoreconf so we don't need patches to prebuild files. ./autogen.sh +# Old openmpi-devel has version depended paths for mpicc. %if %{build_openmpi} +%if 0%{?fedora} >= 13 || 0%{?rhel} >= 6 %define mpiccpath %{!?scl:%{_libdir}}%{?scl:%{_root_libdir}}/openmpi/bin/mpicc %else +%define mpiccpath %{!?scl:%{_libdir}}%{?scl:%{_root_libdir}}/openmpi/*/bin/mpicc +%endif +%else # We explicitly don't want the libmpi wrapper. So make sure that configure # doesn't pick some random mpi compiler that happens to be installed. %define mpiccpath /bin/false @@ -326,9 +299,7 @@ export LDFLAGS %configure \ --with-mpicc=%{mpiccpath} \ %{only_arch} \ - GDB=%{_bindir}/gdb \ - --with-gdbscripts-dir=%{_datadir}/gdb/auto-load \ - --enable-lto + GDB=%{_bindir}/gdb %make_build @@ -434,49 +405,22 @@ echo ===============END TESTING=============== %{!?_licensedir:%global license %%doc} %files -%license COPYING -%{_bindir}/valgrind -%dir %{_libexecdir}/valgrind -# Install just the core tools, default suppression and vgpreload libraries. -%{_libexecdir}/valgrind/default.supp -%{_libexecdir}/valgrind/*-*-linux -# Turn on executable bit again for vgpreload libraries. -# Was disabled in %%install to prevent debuginfo stripping. -%attr(0755,root,root) %{_libexecdir}/valgrind/vgpreload_*-%{valarch}-linux.so - -%files docs -%license COPYING.DOCS +%license COPYING COPYING.DOCS %doc NEWS README_* %doc docs/installed/html docs/installed/*.pdf +%{_bindir}/* +%dir %{_libexecdir}/valgrind +# Install everything in the libdir except the .so. +# The vgpreload so files might need file mode adjustment. +%{_libexecdir}/valgrind/*[^o] +# Turn on executable bit again for vgpreload libraries. +# Was disabled in %%install to prevent debuginfo stripping. +%attr(0755,root,root) %{_libexecdir}/valgrind/vgpreload*-%{valarch}-*so %{_mandir}/man1/* -%files scripts -%license COPYING -%{_bindir}/callgrind_annotate -%{_bindir}/callgrind_control -%{_bindir}/cg_annotate -%{_bindir}/cg_diff -%{_bindir}/cg_merge -%{_bindir}/ms_print -%{_libexecdir}/valgrind/dh_view.css -%{_libexecdir}/valgrind/dh_view.html -%{_libexecdir}/valgrind/dh_view.js - -%files gdb -%license COPYING -%{_bindir}/valgrind-di-server -%{_bindir}/valgrind-listener -%{_bindir}/vgdb -%{_bindir}/vgstack -# gdb register descriptions -%{_libexecdir}/valgrind/*.xml -%{_datadir}/gdb/auto-load/valgrind-monitor.py -%{_datadir}/gdb/auto-load/valgrind-monitor-def.py - %files devel %dir %{_includedir}/valgrind %{_includedir}/valgrind/valgrind.h -%{_includedir}/valgrind/cachegrind.h %{_includedir}/valgrind/callgrind.h %{_includedir}/valgrind/drd.h %{_includedir}/valgrind/helgrind.h @@ -502,276 +446,19 @@ echo ===============END TESTING=============== %{_libdir}/valgrind/libmpiwrap*.so %endif +%if 0%{?rhel} == 6 +%post +# There is a bug in rpm (rhbz#214737) that might cause post to be run +# even thought the binary isn't installed when installing two multilib +# versions at the same time. +if [ -x %{_bindir}/valgrind ]; then +# On RHEL6 the fs equivalency should be setup by the devtoolset meta +# package, but because of a rpm bug (rhbz#924044) it might not work. +%{?scl:/sbin/restorecon %{_bindir}/valgrind}%{!?scl:true} +fi +%endif + %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 1:3.27.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Wed May 20 2026 Mark Wielaard - 3.27.1-1 -- Valgrind 3.27.1 final - -* Mon Apr 20 2026 Mark Wielaard - 3.27.0-1 -- Valgrind 3.27.0 final - -* Fri Apr 17 2026 Mark Wielaard - 3.27.0-0.1.RC2 -- Upstream 3.27.0-RC2 - -* Mon Apr 13 2026 Mark Wielaard - 3.27.0-0.1.RC1 -- Upstream 3.27.0-RC1 -- Remove all VALGRIND_3_26_BRANCH and proposed upstream patches - -* Thu Jan 29 2026 Mark Wielaard - 3.26.0-5 - - Add 0001-Refix-still_reachable-xml-closing-tag-and-add-testca.patch - -* Mon Jan 26 2026 Mark Wielaard - 3.26.0-4 - - Add more VALGRIND_3_26_BRANCH patches - - 0007-Bug-514613-Unclosed-leak_summary-still_reachable-tag.patch - - 0008-Bug-514206-Assertion-sr_isError-sr-failed-mmap-fd-po.patch - -* Sat Jan 17 2026 Fedora Release Engineering - 1:3.26.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Thu Jan 8 2026 Mark Wielaard - 3.26.0-2 - - Add VALGRIND_3_26_BRANCH patches - - 0001-Prepare-NEWS-for-branch-3.26-fixes.patch - - 0002-Bug-511972-valgrind-3.26.0-tests-fail-to-build-on-up.patch - - 0003-readlink-proc-self-exe-overwrites-buffer-beyond-its-.patch - - 0004-Linux-DRD-suppression-add-an-entry-for-__is_decorate.patch - - 0005-Linux-Helgrind-add-a-suppression-for-_dl_allocate_tl.patch - - 0006-Disable-linux-madvise-MADV_GUARD_INSTALL.patch - -* Fri Oct 24 2025 Mark Wielaard - 3.26.0-1 -- Valgrind 3.26.0 final -- Clarify License of valgrind-scripts. - -* Sat Oct 18 2025 Mark Wielaard - 3.26.0-0.1.RC1 -- Upstream 3.26.0-RC1 -- Remove all VALGRIND_3_25_BRANCH and proposed upstream patches -- Refresh some-stack-protector and some-Wl-z-now patches. -- Add vgstack to valgrind-gdb. -- Update License to GPL-3.0-or-later - -* Mon Aug 11 2025 Mark Wielaard - 3.25.1-4 -- Add ppc64-strcmp-ld.patch -- Add 0003-Add-several-missing-syscall-hooks-to-ppc64-linux.patch - -* Tue Aug 5 2025 Mark Wielaard - 3.25.1-3 -- Add VALGRIND_3_25_BRANCH patches - - 0001-Prepare-NEWS-for-branch-3.25.x-fixes.patch - - 0002-Bug-503241-s390x-Support-z17-changes-to-the-NNPA-ins.patch - -* Fri Jul 25 2025 Fedora Release Engineering - 1:3.25.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue May 20 2025 Mark Wielaard - 3.25.1-1 -- Valgrind 3.25.1 final - -* Fri May 16 2025 Mark Wielaard - 3.25.0-3 -- Add 2 more VALGRIND_3_25_BRANCH patches - -* Fri May 9 2025 Mark Wielaard - 3.25.0-2 -- Add VALGRIND_3_25_BRANCH patches - -* Fri Apr 25 2025 Mark Wielaard - 3.25.0-1 -- Valgrind 3.25.0 final - -* Wed Apr 23 2025 Mark Wielaard - 3.25.0-0.1.RC2 -- Upstream 3.25.0-RC2 - -* Fri Apr 18 2025 Mark Wielaard - 3.25.0-0.1.RC1 -- Upstream 3.25.0-RC1 -- Remove all VALGRIND_3_24_BRANCH patches -- Enable riscv64 arch support - -* Sun Mar 30 2025 Mark Wielaard - 3.24.0-8 -- Add new VALGRIND_3_24_BRANCH patches - - 0019-filter_gdb.in-__syscall_cancel_arch-is-just-in-a-sys.patch - - 0020-Bug-501893-Missing-suppression-for-__wcscat_avx2-str.patch - - 0021-filter_gdb.in-filter-out-__libc_do_syscall.patch - - 0022-Handle-top-__syscall_cancel-frames-when-getting-stac.patch -- Remove valgrind-3.24.0-syscall-cancel.patch (replaced by 0022). - -* Fri Mar 28 2025 Mark Wielaard - 3.24.0-7 -- Add valgrind-3.24.0-syscall-cancel.patch - -* Wed Mar 12 2025 Mark Wielaard - 3.24.0-6 -- More VALGRIND_3_24_BRANCH patches - 0016-syswrap-generic-Emit-pp_ExeContext-after-the-file-de.patch - 0017-add_hardwired_spec-for-ld-linux-x86-64.so.2-memcmp.patch - 0018-gdbserver_tests-filter-out-new-Missing-rpms-message.patch - -* Fri Jan 17 2025 Mark Wielaard - 3.24.0-5 -- valgrind-devel now Recommends, instead of Requires, valgrind. -- valgrind-gdb now Requires valgrind, instead of valgrind-devel. -- valgrind-scripts now Recommends valgrind-gdb -- valgrind-gdb now Recommends gdb - -* Wed Jan 15 2025 Mark Wielaard - 3.24.0-4 -- Add 0015-ppc-test_dfp2-build-fix-for-GCC-15.patch - -* Tue Jan 14 2025 Mark Wielaard - 3.24.0-3 -- Add more VALGRIND_3_24_BRANCH patches - 0012-Recognize-new-DWARF5-DW_LANG-constants.patch - 0013-Bug-498317-FdBadUse-is-not-a-valid-CoreError-type-in.patch - 0014-linux-support-EVIOCGRAB-ioctl.patch -- Split main valgrind package into several subpackages: - - valgrind now contains just the core tools. - - valgrind-scripts contains the post-processing scripts for callgrind, - cachegrind, massif and dhat which depend on perl and python. - - valgrind-gdb contains the debuginfo client/server and (v)gdb support. - - valgrind-docs contains the man pages, html and pdf manual. -* Tue Nov 26 2024 Mark Wielaard - 3.24.0-2 -- Add VALGRIND_3_24_BRANCH patches - 0001-Prepare-NEWS-for-branch-3.24-fixes.patch - 0002-vgdb.c-fork_and_exec_valgrind-Fix-off-by-one-error-w.patch - 0003-vgdb.c-fork_and_exec_valgrind-Fix-another-off-by-one.patch - 0004-regtest-add-a-fdleak-filter-for-write-on-write-on-li.patch - 0005-Add-exp-and-supp-patterns-for-missing-main-frame-for.patch - 0006-Add-additional-exp-ppc64le-files-to-EXTRA_DIST.patch - 0007-Add-support-for-landlock_create_ruleset-444-landlock.patch - 0008-helgrind-tests-tc17_sembar.c-Remove-bool-typedef.patch - 0009-drd-tests-swapcontext.c-Rename-typedef-struct-thread.patch - 0010-none-tests-bug234814.c-sa_handler-take-an-int-as-arg.patch - 0011-Add-open_tree-move_mount-fsopen-fsconfig-fsmount-fsp.patch - -* Mon Nov 4 2024 Mark Wielaard - 3.24.0-1 -- Upstream 3.24.0 final - -* Sat Jul 20 2024 Fedora Release Engineering - 1:3.23.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jul 6 2024 Mark Wielaard - 3.23.0-4 -- Add more upstream VALGRIND_3_23_BRANCH patches - 0016-mips-skip-using-shared-syscall-numbers-for-mips64.patch - 0017-gdbserver_tests-filters-remove-python-rpm-module-loa.patch - 0018-Implement-VMOVQ-xmm1-xmm2-m64.patch - 0019-arm64-Fix-fcvtas-instruction.patch - 0020-gdbserver_tests-filters-remove-more-verbose-python-r.patch - 0021-Avoid-dev-inode-check-on-btrfs-with-sanity-level-3.patch - -* Sun Jun 23 2024 Mark Wielaard - 3.23.0-3 -- Add more upstream VALGRIND_3_23_BRANCH patches - 0012-Bug-487439-SIGILL-in-JDK11-JDK17.patch - 0013-Don-t-leave-fds-created-with-log-file-xml-file-or-lo.patch - 0014-Close-both-internal-pipe-fds-after-VG_-fork-in-paren.patch - 0015-Don-t-allow-programs-calling-fnctl-on-valgrind-s-own.patch - -* Mon Jun 10 2024 Mark Wielaard - 3.23.0-2 -- Add upstream VALGRIND_3_23_BRANCH patches - -* Fri Apr 26 2024 Mark Wielaard - 3.23.0-1 -- Upstream 3.23.0 final - -* Thu Apr 25 2024 Mark Wielaard - 3.23.0-0.2.RC2 -- configure --enable-lto - -* Wed Apr 24 2024 Mark Wielaard - 3.23.0-0.1.RC2 -- Upstream 3.23.0-RC2 - -* Sat Apr 20 2024 Mark Wielaard - 3.23.0-0.1.RC1 -+- Upstream 3.23.0-RC1 -+- Remove all upstreamed patches - -* Sat Apr 13 2024 Mark Wielaard - 3.22.0-8 -- Add BuildRequires: python3-devel for running testsuite. -- Add valgrind-3.22.0-gdb-thread-exited.patch -- Add valgrind-3.22.0-set_vma_name-supp.patch -- Add valgrind-3.22.0-pth_mempcpy_false_races.patch -- Add valgrind-3.22.0-amd64-VFMADD213.patch -- Add valgrind-3.22.0-amd64-redir-strcmp.patch - -* Mon Mar 11 2024 Mark Wielaard - 3.22.0-7 -- Add valgrind-3.22.0-gcc-builtin_strcmp-128-256-bit-vector.patch - -* Mon Mar 4 2024 Mark Wielaard -- Update Fedora license tags to spdx license tags - -* Sat Jan 27 2024 Fedora Release Engineering - 1:3.22.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 22 2024 Mark Wielaard - 3.22.0-5 -- Add valgrind-3.22.0-x86-nop.patch - -* Sat Dec 9 2023 Mark Wielaard - 3.22.0-4 -- Add valgrind-3.22.0-fchmodat2.patch -- Prep for migration to SPDX identifiers - -* Tue Dec 5 2023 Mark Wielaard - 3.22.0-3 -- Add valgrind-3.22.0-rodata.patch - -* Fri Nov 17 2023 Mark Wielaard - 3.22.0-2 -- Add valgrind-3.22.0-valgrind-monitor-python-re.patch -- Drop support for rhel6 - -* Tue Oct 31 2023 Mark Wielaard - 3.22.0-1 -- Upstream 3.22.0 final -- BuildRequires elfutils-debuginfod for testing - -* Mon Oct 30 2023 Mark Wielaard - 3.22.0-0.2.RC2 -- Update valgrind-3.21.0-no-memcpy-replace-check.patch -- Fedora 40 dropped openmpi support on i386 - -* Thu Oct 26 2023 Mark Wielaard - 3.22.0-0.1.RC2 -- Upstream 3.22.0-RC2 - -* Tue Oct 17 2023 Mark Wielaard - 3.22.0-0.1.RC1 -- Upstream 3.22.0-RC1 -- Remove all upstreamed patches -- Adjust valgrind-3.16.0-some-stack-protector.patch -- Adjust valgrind-3.16.0-some-Wl-z-now.patch -- Add cachegrind.h to valgrind-devel package - -* Mon Aug 21 2023 Mark Wielaard - 3.21.0-10 -- Add valgrind-3.21.0-lazy-debuginfo.patch -- Add valgrind-3.21.0-cleanup-read_elf_object.patch - -* Thu Aug 17 2023 Mark Wielaard - 3.21.0-9 -- Add valgrind-3.21.0-gdb-multi-mode-stdout-redirecting-to-stderr.patch -- Use %%patch -Pn instead of deprecated %%patchn - -* Sat Jul 22 2023 Fedora Release Engineering - 1:3.21.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jun 22 2023 Mark Wielaard - 3.21.0-7 -- Add valgrind-3.21.0-vgm.patch and valgrind-3.21.0-vgm-tests.patch -- Add valgrind-3.21.0-pgste.patch - -* Thu Jun 1 2023 Mark Wielaard - 3.21.0-6 -- Add valgrind-3.21.0-callgrind_control-no-strict.patch -- Add valgrind-3.21.0-realloc-again.patch - -* Tue May 30 2023 Mark Wielaard - 3.21.0-5 -- Update valgrind-3.21.0-no-memcpy-replace-check.patch (memcpy_chk) - -* Wed May 17 2023 Mark Wielaard - 3.21.0-4 -- Add valgrind-3.21.0-epoll_pwait2.patch - -* Tue May 16 2023 Alexandra Hájková - 3.21.0-3 -- Add valgrind-3.21.0-Add-with-gdbscripts-dir.patch - -* Fri May 5 2023 Mark Wielaard - 3.21.0-2 -- Add valgrind-3.21.0-no-memcpy-replace-check.patch - -* Fri Apr 28 2023 Mark Wielaard - 3.21.0-1 -- Upstream 3.21.0 final - -* Sat Apr 22 2023 Mark Wielaard - 3.21.0-0.1.RC2 -- Upstream 3.21.0-RC2 - -* Fri Apr 21 2023 Mark Wielaard - 3.21.0-0.1.RC1 -- Upstream 3.21.0-RC1 -- Remove upstreamed valgrind-faultstatus-implicit-int.patch -- Adjust valgrind-3.16.0-some-{Wl-z-now,stack-protector}.patch - cg_merge is now a pything script. - -* Fri Nov 18 2022 Florian Weimer - 1:3.20.0-2 -- Avoid using implicit int C89 feature - -* Mon Oct 24 2022 Mark Wielaard - 3.20.0-1 -- Upgrade to valgrind 3.20.0. Drop old patches. - -* Sat Jul 23 2022 Fedora Release Engineering - 1:3.19.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - * Wed May 25 2022 Mark Wielaard - 3.19.0-3 - Add valgrind-3.19.0-s390x-memmem.patch