You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(32) |
Oct
|
Nov
|
Dec
|
|
From: Paul F. <pa...@so...> - 2022-04-13 22:04:04
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=d6bcd3ba2906e9ed2c5240af5479fce80ec12658 commit d6bcd3ba2906e9ed2c5240af5479fce80ec12658 Author: Paul Floyd <pj...@wa...> Date: Thu Apr 14 00:01:49 2022 +0200 Some more auxv extensions for FreeBSD 14 New entries added to testcase and documented in initimg. May need more work Diff: --- coregrind/m_initimg/initimg-freebsd.c | 11 ++++++++--- none/tests/freebsd/auxv.c | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/coregrind/m_initimg/initimg-freebsd.c b/coregrind/m_initimg/initimg-freebsd.c index 10d034eab6..bfa1907769 100644 --- a/coregrind/m_initimg/initimg-freebsd.c +++ b/coregrind/m_initimg/initimg-freebsd.c @@ -690,12 +690,17 @@ Addr setup_client_stack( void* init_sp, case AT_ARGC: // case AT_ARGV: case AT_ENVC: - // case AT_ENVV: - // case AT_PS_STRINGS: + // case AT_ENVV: + // case AT_PS_STRINGS: #endif #if (FREEBSD_VERS >= FREEBSD_14) - // case AT_FXRNG: + // I think that this is a pointer to a "fenestrasX" structture + // lots of stuff that I don't understand + // arc4random, passing through VDSO page ... + // case AT_FXRNG: + // Again a pointer, to the VDSO base for use by rtld + // case AT_KPRELOAD: #endif case AT_PHDR: diff --git a/none/tests/freebsd/auxv.c b/none/tests/freebsd/auxv.c index 689fb3d113..ce13b6e131 100644 --- a/none/tests/freebsd/auxv.c +++ b/none/tests/freebsd/auxv.c @@ -50,7 +50,9 @@ Elf_AuxStr aux_map[AT_COUNT] = { #endif #if (FREEBSD_VERS >= FREEBSD_14) {"AT_FXRNG", 33}, -// {"AT_COUNT", 34}, + {"AT_KPRELOAD", 34}, + +// {"AT_COUNT", 35}, #endif }; |
|
From: Paul F. <pa...@so...> - 2022-04-13 21:33:43
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=60dd674e71a1db6b87fab2f8d759ae66b2b35ef4 commit 60dd674e71a1db6b87fab2f8d759ae66b2b35ef4 Author: Paul Floyd <pj...@wa...> Date: Wed Apr 13 23:32:55 2022 +0200 Missing defines for FreeBSD 14 swapoff +1 typo Diff: --- coregrind/m_syswrap/priv_syswrap-freebsd.h | 2 +- include/vki/vki-scnums-freebsd.h | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/coregrind/m_syswrap/priv_syswrap-freebsd.h b/coregrind/m_syswrap/priv_syswrap-freebsd.h index 6297033e14..36a48ac1ff 100644 --- a/coregrind/m_syswrap/priv_syswrap-freebsd.h +++ b/coregrind/m_syswrap/priv_syswrap-freebsd.h @@ -556,7 +556,7 @@ DECL_TEMPLATE(freebsd, sys___specialfd) // 577 // unimpl __NR_fspacectl 580 // unimpl __NR_sched_getcpu 581 -DECL_TEMPLATE(freebsd, __NR_swapoff) // 582 +DECL_TEMPLATE(freebsd, sys_swapoff) // 582 #endif DECL_TEMPLATE(freebsd, sys_fake_sigreturn) diff --git a/include/vki/vki-scnums-freebsd.h b/include/vki/vki-scnums-freebsd.h index cd806dcb94..d1df3d4dd8 100644 --- a/include/vki/vki-scnums-freebsd.h +++ b/include/vki/vki-scnums-freebsd.h @@ -459,7 +459,7 @@ #define __NR_setcontext 422 #define __NR_swapcontext 423 #if (FREEBSD_VERS >= FREEBSD_14) -#define __NR_freebsd14_swapoff 424 +#define __NR_freebsd13_swapoff 424 #else #define __NR_swapoff 424 #endif @@ -653,6 +653,14 @@ #endif +#if (FREEBSD_VERS >= FREEBSD_14) + +#define __NR_fspacectl 580 +#define __NR_sched_getcpu 581 +#define __NR_swapoff 582 + +#endif + #define __NR_fake_sigreturn 1000 #endif /* VKI_UNISTD_FREEBSD_H */ |
|
From: Paul F. <pa...@so...> - 2022-04-13 21:01:51
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=cdd98111c798a7ff2b24bc76aef3eb5e98d85ee1 commit cdd98111c798a7ff2b24bc76aef3eb5e98d85ee1 Author: Paul Floyd <pj...@wa...> Date: Wed Apr 13 23:00:44 2022 +0200 Updates to FreeBSD syscalls for FreeBSD 14 3 new syscalls, and swapoff has a COMPAT13 version. Diff: --- coregrind/m_syswrap/priv_syswrap-freebsd.h | 13 +++++++++++++ coregrind/m_syswrap/syswrap-freebsd.c | 31 ++++++++++++++++++++++++++++-- include/vki/vki-scnums-freebsd.h | 4 ++++ memcheck/tests/freebsd/filter_scalar | 3 ++- memcheck/tests/freebsd/scalar.c | 6 ++++++ 5 files changed, 54 insertions(+), 3 deletions(-) diff --git a/coregrind/m_syswrap/priv_syswrap-freebsd.h b/coregrind/m_syswrap/priv_syswrap-freebsd.h index db0b647f53..6297033e14 100644 --- a/coregrind/m_syswrap/priv_syswrap-freebsd.h +++ b/coregrind/m_syswrap/priv_syswrap-freebsd.h @@ -371,7 +371,13 @@ DECL_TEMPLATE(freebsd, sys_sigreturn) // 417 DECL_TEMPLATE(freebsd, sys_getcontext) // 421 DECL_TEMPLATE(freebsd, sys_setcontext) // 422 DECL_TEMPLATE(freebsd, sys_swapcontext) // 423 + +#if (FREEBSD_VERS >= FREEBSD_14) +DECL_TEMPLATE(freebsd, sys_freebsd13_swapoff) // 424 +#else DECL_TEMPLATE(freebsd, sys_swapoff) // 424 +#endif + DECL_TEMPLATE(freebsd, sys___acl_get_link) // 425 DECL_TEMPLATE(freebsd, sys___acl_set_link) // 426 DECL_TEMPLATE(freebsd, sys___acl_delete_link) // 427 @@ -546,6 +552,13 @@ DECL_TEMPLATE(freebsd, sys___specialfd) // 577 #endif +#if (FREEBSD_VERS >= FREEBSD_14) + +// unimpl __NR_fspacectl 580 +// unimpl __NR_sched_getcpu 581 +DECL_TEMPLATE(freebsd, __NR_swapoff) // 582 +#endif + DECL_TEMPLATE(freebsd, sys_fake_sigreturn) #endif // PRIV_SYSWRAP_FREEBSD_H diff --git a/coregrind/m_syswrap/syswrap-freebsd.c b/coregrind/m_syswrap/syswrap-freebsd.c index fcbd11fbbb..64260f8a9a 100644 --- a/coregrind/m_syswrap/syswrap-freebsd.c +++ b/coregrind/m_syswrap/syswrap-freebsd.c @@ -3856,7 +3856,16 @@ POST(sys_swapcontext) POST_MEM_WRITE( ARG1, sizeof(struct vki_ucontext) ); } -// @todo PJF In FreeBSD 14 and onwards this is SYS_freebsd13_swapoff +#if (FREEBSD_VERS >= FREEBSD_14) +// SYS_freebsd13_swapoff 424 +// int swapoff(const char *special); +PRE(sys_freebsd13_swapoff) +{ + PRINT("sys_freebsd13_swapoff ( %#" FMT_REGWORD "x(%s) )", ARG1,(char *)ARG1); + PRE_REG_READ1(int, "swapoff", const char *, special); + PRE_MEM_RASCIIZ( "swapoff(special)", ARG1 ); +} +#else // SYS_swapoff 424 // int swapoff(const char *special); PRE(sys_swapoff) @@ -3865,6 +3874,7 @@ PRE(sys_swapoff) PRE_REG_READ1(int, "swapoff", const char *, special); PRE_MEM_RASCIIZ( "swapoff(special)", ARG1 ); } +#endif // SYS___acl_get_link 425 // int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); @@ -6248,6 +6258,19 @@ PRE(sys___specialfd) #endif // (FREEBSD_VERS >= FREEBSD_13_0) +#if (FREEBSD_VERS >= FREEBSD_14) + +// SYS_swapoff 582 +// int swapoff(const char *special, u_int flags); +PRE(sys_swapoff) +{ + PRINT("sys_swapoff ( %#" FMT_REGWORD "x(%s), %" FMT_REGWORD "u )", ARG1,(char *)ARG1, ARG2); + PRE_REG_READ2(int, "swapoff", const char *, special, u_int, flags); + PRE_MEM_RASCIIZ( "swapoff(special)", ARG1 ); +} + +#endif + #undef PRE #undef POST @@ -6752,7 +6775,11 @@ const SyscallTableEntry ML_(syscall_table)[] = { BSDX_(__NR_setcontext, sys_setcontext), // 422 BSDXY(__NR_swapcontext, sys_swapcontext), // 423 +#if (FREEBSD_VERS >= FREEBSD_14) + BSDX_(__NR_freebsd13_swapoff, sys_freebsd13_swapoff), // 424 +#else BSDX_(__NR_swapoff, sys_swapoff), // 424 +#endif BSDXY(__NR___acl_get_link, sys___acl_get_link), // 425 BSDX_(__NR___acl_set_link, sys___acl_set_link), // 426 BSDX_(__NR___acl_delete_link, sys___acl_delete_link), // 427 @@ -6960,7 +6987,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { #if (FREEBSD_VERS >= FREEBSD_14) // unimpl __NR_fspacectl 580 // unimpl __NR_sched_getcpu 581 - // unimpl __NR_swapoff 582 + BSDX_(__NR_swapoff, sys_swapoff), // 582 #endif BSDX_(__NR_fake_sigreturn, sys_fake_sigreturn), // 1000, fake sigreturn diff --git a/include/vki/vki-scnums-freebsd.h b/include/vki/vki-scnums-freebsd.h index 2bce8b523d..cd806dcb94 100644 --- a/include/vki/vki-scnums-freebsd.h +++ b/include/vki/vki-scnums-freebsd.h @@ -458,7 +458,11 @@ #define __NR_getcontext 421 #define __NR_setcontext 422 #define __NR_swapcontext 423 +#if (FREEBSD_VERS >= FREEBSD_14) +#define __NR_freebsd14_swapoff 424 +#else #define __NR_swapoff 424 +#endif #define __NR___acl_get_link 425 #define __NR___acl_set_link 426 #define __NR___acl_delete_link 427 diff --git a/memcheck/tests/freebsd/filter_scalar b/memcheck/tests/freebsd/filter_scalar index 2be15ade9b..52b7c456ee 100755 --- a/memcheck/tests/freebsd/filter_scalar +++ b/memcheck/tests/freebsd/filter_scalar @@ -13,4 +13,5 @@ sed '/at 0x........: syscall (in \/...libc...)/d' | # filter differences between FreeBSD 12 and 13/14 -sed 's/SYS_freebsd12/ SYS/' +sed 's/SYS_freebsd12/ SYS/' | +sed 's/SYS_freebsd13/ SYS/' diff --git a/memcheck/tests/freebsd/scalar.c b/memcheck/tests/freebsd/scalar.c index 50c70e4f23..5a0b4e85d1 100644 --- a/memcheck/tests/freebsd/scalar.c +++ b/memcheck/tests/freebsd/scalar.c @@ -1396,9 +1396,15 @@ int main(void) GO(SYS_swapcontext, "2s 2m"); SY(SYS_swapcontext, x0+1, x0+2); FAIL; +#if (FREEBSD_VERS >= FREEBSD_14) + /* SYS_freebsd13_swapoff 424 */ + GO(SYS_freebsd13_swapoff, "1s 1m"); + SY(SYS_freebsd13_swapoff, x0+1); FAIL; +#else /* SYS_swapoff 424 */ GO(SYS_swapoff, "1s 1m"); SY(SYS_swapoff, x0+1); FAIL; +#endif /* SYS___acl_get_link 425 */ GO(SYS___acl_get_link, "3s 2m"); |
|
From: Paul F. <pa...@so...> - 2022-04-13 21:00:21
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=6c51e110a20a5c98daf6f0630802f0bcfdef1fd6 commit 6c51e110a20a5c98daf6f0630802f0bcfdef1fd6 Author: Paul Floyd <pj...@wa...> Date: Wed Apr 13 22:59:09 2022 +0200 Update FreeBSD scalar for x86 Missed one execve diff. Diff: --- memcheck/tests/freebsd/scalar.stderr.exp-x86 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/memcheck/tests/freebsd/scalar.stderr.exp-x86 b/memcheck/tests/freebsd/scalar.stderr.exp-x86 index 150909f0bf..a5e1e25f0c 100644 --- a/memcheck/tests/freebsd/scalar.stderr.exp-x86 +++ b/memcheck/tests/freebsd/scalar.stderr.exp-x86 @@ -541,6 +541,10 @@ Syscall param execve(filename) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd +Syscall param execve(argv) points to unaddressable byte(s) + ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + --------------------------------------------------------- 60: SYS_umask 1s 0m --------------------------------------------------------- |
|
From: Mark W. <ma...@so...> - 2022-04-12 22:50:52
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=9fd4181b0e267cb4b6f959a9f52acd70f8d25fe2 commit 9fd4181b0e267cb4b6f959a9f52acd70f8d25fe2 Author: Mark Wielaard <ma...@kl...> Date: Wed Apr 13 00:34:19 2022 +0200 Set version to 3.20.0.GIT Diff: --- NEWS | 2 +- configure.ac | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 752e5c0e7f..480761bb22 100644 --- a/NEWS +++ b/NEWS @@ -41,7 +41,7 @@ To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed above. -(3.20.0.RC1: ?? )ct 2022) +(3.20.0.RC1: ?? Oct 2022) Release 3.19.0 (11 Apr 2022) diff --git a/configure.ac b/configure.ac index 5dcd4894a3..6f51dfd9f8 100755 --- a/configure.ac +++ b/configure.ac @@ -15,10 +15,10 @@ # Also set the (expected/last) release date here. # Do not forget to rerun ./autogen.sh m4_define([v_major_ver], [3]) -m4_define([v_minor_ver], [19]) +m4_define([v_minor_ver], [20]) m4_define([v_micro_ver], [0]) -m4_define([v_suffix_ver], []) -m4_define([v_rel_date], ["11 Apr 2022"]) +m4_define([v_suffix_ver], [GIT]) +m4_define([v_rel_date], ["?? Oct 2022"]) m4_define([v_version], m4_if(v_suffix_ver, [], [v_major_ver.v_minor_ver.v_micro_ver], |
|
From: Paul F. <pa...@so...> - 2022-04-12 21:56:21
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=d5b782056d5b690f508ff90f37d24926d12d1e78 commit d5b782056d5b690f508ff90f37d24926d12d1e78 Author: Paul Floyd <pj...@wa...> Date: Tue Apr 12 23:55:46 2022 +0200 Fix typo in EXTRA_DIST Diff: --- none/tests/freebsd/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/none/tests/freebsd/Makefile.am b/none/tests/freebsd/Makefile.am index 345990c627..5fc3e96972 100644 --- a/none/tests/freebsd/Makefile.am +++ b/none/tests/freebsd/Makefile.am @@ -27,7 +27,7 @@ EXTRA_DIST = \ fexecve_txt.vgtest \ fexecve_txt.stderr.exp \ 452275.vgtest \ - 452275.stderr.out + 452275.stderr.exp check_PROGRAMS = \ auxv osrel swapcontext hello_world fexecve 452275 |
|
From: Paul F. <pa...@so...> - 2022-04-12 21:51:35
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=3e7774ea5a5eda11d37bc4670aad8a3cb8a260fe commit 3e7774ea5a5eda11d37bc4670aad8a3cb8a260fe Author: Paul Floyd <pj...@wa...> Date: Tue Apr 12 23:34:41 2022 +0200 Bug 452274 memcheck crashes with Assertion 'sci->status.what == SsIdle' failed FreeBSD (and Darwin) use the carry flag for syscall syscall status. That means that in the assembler for do_syscall_for_client_WRK they have a call to LibVEX_GuestAMD64_put_rflag_c (amd64) or LibVEX_GuestX86_put_eflag_c (x86). These also call WRK functions. The problem is that do_syscall_for_client_WRK has carefully crafted labels correspinding to IP addresses. If a signal interrupts processdings, IP can be compared to these addresses so that VG_(fixup_guest_state_after_syscall_interrupted) can work out how to resume the syscall. But if IP is in the save carry flag functions, the address is not recognized and VG_(fixup_guest_state_after_syscall_interrupted) fails. The crash in the title happens because the interrupted syscall does not reset its status, and on the next syscall it is expected that the status be idle. To fix this I added global variables that get set to 1 just before calling the save carry flag functions, and cleared just after. VG_(fixup_guest_state_after_syscall_interrupted) can then check this and work out which section we are in and resume the syscall correctly. Also: Start a new NEWS section for 3.20 Add a regtest for this and also a similar one for Bug 445032 (x86-freebsd only, new subdir). I saw that this problem also probably exists with macOS, so I made the same changes there (not yet tested) Diff: --- .gitignore | 12 ++++++++ NEWS | 46 +++++++++++++++++++++++++++++ configure.ac | 1 + coregrind/m_syswrap/syscall-amd64-darwin.S | 5 ++++ coregrind/m_syswrap/syscall-amd64-freebsd.S | 40 +++++++++++++++---------- coregrind/m_syswrap/syscall-x86-darwin.S | 4 +++ coregrind/m_syswrap/syscall-x86-freebsd.S | 7 +++++ coregrind/m_syswrap/syswrap-main.c | 16 ++++++++++ none/tests/Makefile.am | 5 +++- none/tests/freebsd/452275.c | 33 +++++++++++++++++++++ none/tests/freebsd/452275.stderr.exp | 0 none/tests/freebsd/452275.vgtest | 3 ++ none/tests/freebsd/Makefile.am | 8 +++-- none/tests/freebsd/filter_452275 | 6 ++++ none/tests/x86-freebsd/445032.c | 31 +++++++++++++++++++ none/tests/x86-freebsd/445032.stderr.exp | 0 none/tests/x86-freebsd/445032.vgtest | 2 ++ none/tests/x86-freebsd/Makefile.am | 15 ++++++++++ none/tests/x86-freebsd/filter_stderr | 3 ++ 19 files changed, 217 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 94ff17d299..78ea5819a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1341,6 +1341,7 @@ /memcheck/tests/freebsd/eventfd2 /memcheck/tests/freebsd/realpathat /memcheck/tests/freebsd/scalar_13_plus +/memcheck/tests/freebsd/452275 # /memcheck/tests/amd64-freebsd /memcheck/tests/amd64-freebsd/*.stderr.diff @@ -2074,6 +2075,7 @@ /none/tests/freebsd/swapcontext /none/tests/freebsd/fexecve /none/tests/freebsd/hello_world +/none/tests/freebsd/452275 # /none/tests/x86/ /none/tests/x86/*.dSYM @@ -2186,6 +2188,16 @@ /none/tests/x86-solaris/coredump_single_thread_sse /none/tests/x86-solaris/syscalls +# /none/tests/x86-freebsd/ +/none/tests/x86-freebsd/*.stderr.diff +/none/tests/x86-freebsd/*.stderr.out +/none/tests/x86-freebsd/*.stdout.diff +/none/tests/x86-freebsd/*.stdout.out +/none/tests/x86-freebsd/.deps +/none/tests/x86-freebsd/Makefile +/none/tests/x86-freebsd/Makefile.in +/none/tests/x86-freebsd/445032 + # /perf/ /perf/*.dSYM /perf/.deps diff --git a/NEWS b/NEWS index dcce409261..752e5c0e7f 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,49 @@ +Release 3.20.0 (?? Oct 2022) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, +PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux, +MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android, +X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and +AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13, +AMD64/macOS 10.13 and nanoMIPS/Linux. + +* ==================== CORE CHANGES =================== + +* Fix Rust v0 name demangling. +* The Linux rseq syscall is now implemented as (silently) returning ENOSYS. +* Add FreeBSD syscall wrappers for __specialfd and __realpathat. +* Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with HardenedBSD + +* ================== PLATFORM CHANGES ================= + +* arm64: + +* s390: + +* ppc64: + +* ==================== TOOL CHANGES =================== + + +* ==================== FIXED BUGS ==================== + +The following bugs have been fixed or resolved. Note that "n-i-bz" +stands for "not in bugzilla" -- that is, a bug that was reported to us +but never got a bugzilla entry. We encourage you to file bugs in +bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather +than mailing the developers (or mailing lists) directly -- bugs that +are not entered into bugzilla tend to get forgotten about or ignored. + +452274 memcheck crashes with Assertion 'sci->status.what == SsIdle' failed + +To see details of a given bug, visit + https://bugs.kde.org/show_bug.cgi?id=XXXXXX +where XXXXXX is the bug number as listed above. + +(3.20.0.RC1: ?? )ct 2022) + + Release 3.19.0 (11 Apr 2022) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/configure.ac b/configure.ac index 7fd7ff18c6..5dcd4894a3 100755 --- a/configure.ac +++ b/configure.ac @@ -5357,6 +5357,7 @@ AC_CONFIG_FILES([ none/tests/x86-darwin/Makefile none/tests/amd64-solaris/Makefile none/tests/x86-solaris/Makefile + none/tests/x86-freebsd/Makefile exp-bbv/Makefile exp-bbv/tests/Makefile exp-bbv/tests/x86/Makefile diff --git a/coregrind/m_syswrap/syscall-amd64-darwin.S b/coregrind/m_syswrap/syscall-amd64-darwin.S index ed93a851eb..8a970fa088 100644 --- a/coregrind/m_syswrap/syscall-amd64-darwin.S +++ b/coregrind/m_syswrap/syscall-amd64-darwin.S @@ -248,6 +248,11 @@ ML_(blksys_complete_UNIX): .quad MK_L_SCCLASS_N(UNIX,3) ML_(blksys_committed_UNIX): .quad MK_L_SCCLASS_N(UNIX,4) ML_(blksys_finished_UNIX): .quad MK_L_SCCLASS_N(UNIX,5) +.data +globl ML_(blksys_saving_cflag) +ML_(blksys_saving_cflag): .quad 0 +.previous + #endif // defined(VGP_amd64_darwin) /* Let the linker know we don't need an executable stack */ diff --git a/coregrind/m_syswrap/syscall-amd64-freebsd.S b/coregrind/m_syswrap/syscall-amd64-freebsd.S index 414371967f..b435842c81 100644 --- a/coregrind/m_syswrap/syscall-amd64-freebsd.S +++ b/coregrind/m_syswrap/syscall-amd64-freebsd.S @@ -106,23 +106,23 @@ ML_(do_syscall_for_client_WRK): /* 6 register parameters */ movq -16(%rbp), %r11 /* r11 = VexGuestAMD64State * */ - movq OFFSET_amd64_RDI(%r11), %rdi - movq OFFSET_amd64_RSI(%r11), %rsi - movq OFFSET_amd64_RDX(%r11), %rdx - movq OFFSET_amd64_R10(%r11), %r10 - movq OFFSET_amd64_R8(%r11), %r8 - movq OFFSET_amd64_R9(%r11), %r9 - /* 2 stack parameters plus return address (ignored by syscall) */ - movq OFFSET_amd64_RSP(%r11), %r11 /* r11 = simulated RSP */ - movq 16(%r11), %rax - pushq %rax - movq 8(%r11), %rax - pushq %rax + movq OFFSET_amd64_RDI(%r11), %rdi + movq OFFSET_amd64_RSI(%r11), %rsi + movq OFFSET_amd64_RDX(%r11), %rdx + movq OFFSET_amd64_R10(%r11), %r10 + movq OFFSET_amd64_R8(%r11), %r8 + movq OFFSET_amd64_R9(%r11), %r9 + /* 2 stack parameters plus return address (ignored by syscall) */ + movq OFFSET_amd64_RSP(%r11), %r11 /* r11 = simulated RSP */ + movq 16(%r11), %rax + pushq %rax + movq 8(%r11), %rax + pushq %rax /* (fake) return address. */ - movq 0(%r11), %rax - pushq %rax - /* syscallno */ - movq -8(%rbp), %rax + movq 0(%r11), %rax + pushq %rax + /* syscallno */ + movq -8(%rbp), %rax /* If rip==2, then the syscall was either just about to start, or was interrupted and the kernel was @@ -144,7 +144,9 @@ ML_(do_syscall_for_client_WRK): movq %rax, %rdi /* arg1 = new flag */ movq %r11, %rsi /* arg2 = vex state */ addq $24, %rsp /* remove syscall parameters */ + movq $0x1, ML_(blksys_saving_cflag) call LibVEX_GuestAMD64_put_rflag_c + movq $0x0, ML_(blksys_saving_cflag) 4: /* Re-block signals. If eip is in [4,5), then the syscall is complete and we needn't worry about it. */ @@ -197,6 +199,12 @@ ML_(blksys_committed): .quad 4b ML_(blksys_finished): .quad 5b .previous + .data + .globl ML_(blksys_saving_cflag) + ML_(blksys_saving_cflag): .quad 0 + .previous + + #endif /* defined(VGP_amd64_freebsd) */ /* Let the linker know we don't need an executable stack */ diff --git a/coregrind/m_syswrap/syscall-x86-darwin.S b/coregrind/m_syswrap/syscall-x86-darwin.S index 9032422685..cbeadc52f8 100644 --- a/coregrind/m_syswrap/syscall-x86-darwin.S +++ b/coregrind/m_syswrap/syscall-x86-darwin.S @@ -246,6 +246,10 @@ ML_(blksys_complete_UNIX): .long MK_L_SCCLASS_N(UNIX,3) ML_(blksys_committed_UNIX): .long MK_L_SCCLASS_N(UNIX,4) ML_(blksys_finished_UNIX): .long MK_L_SCCLASS_N(UNIX,5) +.data +.globl ML_(blksys_saving_cflag) +ML_(blksys_saving_cflag): .long 0 +.previous #endif // defined(VGP_x86_darwin) /* Let the linker know we don't need an executable stack */ diff --git a/coregrind/m_syswrap/syscall-x86-freebsd.S b/coregrind/m_syswrap/syscall-x86-freebsd.S index 9437a34675..d4a6c90812 100644 --- a/coregrind/m_syswrap/syscall-x86-freebsd.S +++ b/coregrind/m_syswrap/syscall-x86-freebsd.S @@ -143,7 +143,9 @@ ML_(do_syscall_for_client_WRK): movl $0, 0(%esp) movb 12(%esp), %al movb %al, 0(%esp) + movl $0x1, ML_(blksys_saving_cflag) call LibVEX_GuestX86_put_eflag_c + movl $0x0, ML_(blksys_saving_cflag) addl $12, %esp 4: /* Re-block signals. If eip is in [4,5), then the syscall is @@ -191,6 +193,11 @@ ML_(blksys_committed): .long 4b ML_(blksys_finished): .long 5b .previous + .data + .globl ML_(blksys_saving_cflag) + ML_(blksys_saving_cflag): .long 0 + .previous + #endif // defined(VGP_x86_freebsd) /* Let the linker know we don't need an executable stack */ diff --git a/coregrind/m_syswrap/syswrap-main.c b/coregrind/m_syswrap/syswrap-main.c index 2982e27669..333fa09b1d 100644 --- a/coregrind/m_syswrap/syswrap-main.c +++ b/coregrind/m_syswrap/syswrap-main.c @@ -2564,6 +2564,9 @@ void VG_(post_syscall) (ThreadId tid) extern const Addr ML_(blksys_complete); extern const Addr ML_(blksys_committed); extern const Addr ML_(blksys_finished); +#if defined(VGO_freebsd) + extern const Addr ML_(blksys_saving_cflag); +#endif #elif defined(VGO_darwin) /* Darwin requires extra uglyness */ extern const Addr ML_(blksys_setup_MACH); @@ -2581,6 +2584,7 @@ void VG_(post_syscall) (ThreadId tid) extern const Addr ML_(blksys_complete_UNIX); extern const Addr ML_(blksys_committed_UNIX); extern const Addr ML_(blksys_finished_UNIX); + extern const Addr ML_(blksys_saving_cflag); #elif defined(VGO_solaris) extern const Addr ML_(blksys_setup); extern const Addr ML_(blksys_complete); @@ -3111,6 +3115,18 @@ VG_(fixup_guest_state_after_syscall_interrupted)( ThreadId tid, # error "Unknown OS" # endif +#if defined(VGO_freebsd) || defined(VGO_darwin) + if (outside_range) + { + if (ML_(blksys_saving_cflag)) + { + outside_range = False; + in_complete_to_committed = True; + } + } +#endif + + /* Figure out what the state of the syscall was by examining the (real) IP at the time of the signal, and act accordingly. */ if (outside_range) { diff --git a/none/tests/Makefile.am b/none/tests/Makefile.am index 24a81b3be9..2ac09e6202 100644 --- a/none/tests/Makefile.am +++ b/none/tests/Makefile.am @@ -70,10 +70,13 @@ endif if VGCONF_PLATFORMS_INCLUDE_X86_SOLARIS SUBDIRS += x86-solaris endif +if VGCONF_PLATFORMS_INCLUDE_X86_FREEBSD +SUBDIRS += x86-freebsd +endif DIST_SUBDIRS = x86 amd64 ppc32 ppc64 arm arm64 s390x mips32 mips64 nanomips \ linux darwin solaris freebsd amd64-linux x86-linux amd64-darwin \ - x86-darwin amd64-solaris x86-solaris scripts . + x86-darwin amd64-solaris x86-solaris x86-freebsd scripts . dist_noinst_SCRIPTS = \ filter_cmdline0 \ diff --git a/none/tests/freebsd/452275.c b/none/tests/freebsd/452275.c new file mode 100644 index 0000000000..6207729f52 --- /dev/null +++ b/none/tests/freebsd/452275.c @@ -0,0 +1,33 @@ +#include <fcntl.h> +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> +#include <unistd.h> + +volatile int ticks = 0; +struct itimerval timert; +struct sigaction timer_action; + + +void handle_vtalrm(int sig) { + ticks++; +} + +void setup_timer() { + timer_action.sa_handler = handle_vtalrm; + sigemptyset(&timer_action.sa_mask); + timer_action.sa_flags = SA_RESTART; + + sigaction(SIGVTALRM, &timer_action, NULL); + + timert.it_interval.tv_sec = timert.it_value.tv_sec = 0; + timert.it_interval.tv_usec = timert.it_value.tv_usec = 100; + setitimer(ITIMER_VIRTUAL, &timert, NULL); +} + +int main(int argc, char *argv[]) { + setup_timer(); + while (ticks < 100) { + write(2, " ", 1); + } +} diff --git a/none/tests/freebsd/452275.stderr.exp b/none/tests/freebsd/452275.stderr.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/none/tests/freebsd/452275.vgtest b/none/tests/freebsd/452275.vgtest new file mode 100644 index 0000000000..047d618bbe --- /dev/null +++ b/none/tests/freebsd/452275.vgtest @@ -0,0 +1,3 @@ +prog: 452275 +vgopts: -q +stderr_filter: filter_452275 diff --git a/none/tests/freebsd/Makefile.am b/none/tests/freebsd/Makefile.am index f3dabc9a9b..345990c627 100644 --- a/none/tests/freebsd/Makefile.am +++ b/none/tests/freebsd/Makefile.am @@ -1,7 +1,7 @@ include $(top_srcdir)/Makefile.tool-tests.am -dist_noinst_SCRIPTS = filter_stderr test.sh +dist_noinst_SCRIPTS = filter_stderr test.sh filter_452275 EXTRA_DIST = \ auxv.vgtest \ auxv.stderr.exp \ @@ -25,10 +25,12 @@ EXTRA_DIST = \ fexecve_script2.stdout.exp \ fexecve_script2.stderr.exp \ fexecve_txt.vgtest \ - fexecve_txt.stderr.exp + fexecve_txt.stderr.exp \ + 452275.vgtest \ + 452275.stderr.out check_PROGRAMS = \ - auxv osrel swapcontext hello_world fexecve + auxv osrel swapcontext hello_world fexecve 452275 AM_CFLAGS += $(AM_FLAG_M3264_PRI) AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) diff --git a/none/tests/freebsd/filter_452275 b/none/tests/freebsd/filter_452275 new file mode 100755 index 0000000000..73bbad0e52 --- /dev/null +++ b/none/tests/freebsd/filter_452275 @@ -0,0 +1,6 @@ +#! /bin/sh + +./filter_stderr | + +sed 's/ //g' + diff --git a/none/tests/x86-freebsd/445032.c b/none/tests/x86-freebsd/445032.c new file mode 100644 index 0000000000..6fe828cb4d --- /dev/null +++ b/none/tests/x86-freebsd/445032.c @@ -0,0 +1,31 @@ +#include <fcntl.h> +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> +#include <unistd.h> + +volatile int ticks = 0; +struct itimerval timert; +struct sigaction timer_action; + + +void handle_vtalrm(int sig) { + ticks++; +} + +void setup_timer() { + timer_action.sa_handler = handle_vtalrm; + sigemptyset(&timer_action.sa_mask); + timer_action.sa_flags = SA_RESTART; + + sigaction(SIGVTALRM, &timer_action, NULL); + + timert.it_interval.tv_sec = timert.it_value.tv_sec = 0; + timert.it_interval.tv_usec = timert.it_value.tv_usec = 100; + setitimer(ITIMER_VIRTUAL, &timert, NULL); +} + +int main(int argc, char *argv[]) { + setup_timer(); + sleep(5); +} diff --git a/none/tests/x86-freebsd/445032.stderr.exp b/none/tests/x86-freebsd/445032.stderr.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/none/tests/x86-freebsd/445032.vgtest b/none/tests/x86-freebsd/445032.vgtest new file mode 100644 index 0000000000..06fb233915 --- /dev/null +++ b/none/tests/x86-freebsd/445032.vgtest @@ -0,0 +1,2 @@ +prog: 445032 +vgopts: -q diff --git a/none/tests/x86-freebsd/Makefile.am b/none/tests/x86-freebsd/Makefile.am new file mode 100644 index 0000000000..5dc444b6d4 --- /dev/null +++ b/none/tests/x86-freebsd/Makefile.am @@ -0,0 +1,15 @@ +include $(top_srcdir)/Makefile.tool-tests.am + +dist_noinst_SCRIPTS = filter_stderr + +EXTRA_DIST = \ + 445032.vgtest \ + 445032.stderr.exp + +check_PROGRAMS = \ + 445032 + +# Linux also adds $(FLAG_MMMX) $(FLAG_MSSE) to the first two +AM_CFLAGS += @FLAG_M32@ +AM_CXXFLAGS += @FLAG_M32@ +AM_CCASFLAGS += @FLAG_M32@ diff --git a/none/tests/x86-freebsd/filter_stderr b/none/tests/x86-freebsd/filter_stderr new file mode 100755 index 0000000000..a778e971fc --- /dev/null +++ b/none/tests/x86-freebsd/filter_stderr @@ -0,0 +1,3 @@ +#! /bin/sh + +../filter_stderr "$@" |
|
From: Paul F. <pa...@so...> - 2022-04-11 20:35:09
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=68ac5ca0ea91e0591c94083486ffd77ef112b447 commit 68ac5ca0ea91e0591c94083486ffd77ef112b447 Author: Paul Floyd <pj...@wa...> Date: Mon Apr 11 22:32:45 2022 +0200 Fix building on macOS Adds a feature check for clockid_t Also fix a typo in a macro affecting pthread_mutex_clocklock on Linux. Diff: --- configure.ac | 15 +++++++++++++++ drd/drd_pthread_intercepts.c | 10 ++++++++++ helgrind/hg_intercepts.c | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index e02dd0bcba..7fd7ff18c6 100755 --- a/configure.ac +++ b/configure.ac @@ -1527,6 +1527,21 @@ AC_DEFINE([HAVE_PTHREAD_RWLOCK_T], 1, AC_MSG_RESULT([no]) ]) +# Check for CLOCKID_T + +AC_MSG_CHECKING([for clockid_t]) + +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include <time.h> +]], [[ + clockid_t c; +]])], [ +AC_MSG_RESULT([yes]) +AC_DEFINE([HAVE_CLOCKID_T], 1, + [Define to 1 if you have the `clockid_t' type.]) +], [ +AC_MSG_RESULT([no]) +]) # Check for PTHREAD_MUTEX_ADAPTIVE_NP diff --git a/drd/drd_pthread_intercepts.c b/drd/drd_pthread_intercepts.c index c18e888678..ecbf0f731b 100644 --- a/drd/drd_pthread_intercepts.c +++ b/drd/drd_pthread_intercepts.c @@ -1016,6 +1016,7 @@ PTH_FUNCS(int, (mutex, timeout)); #endif /* VGO_solaris */ +#if defined(HAVE_CLOCKID_T) static __always_inline int pthread_mutex_clocklock_intercept(pthread_mutex_t *mutex, clockid_t clockid, @@ -1035,6 +1036,7 @@ int pthread_mutex_clocklock_intercept(pthread_mutex_t *mutex, PTH_FUNCS(int, pthreadZumutexZuclocklock, pthread_mutex_clocklock_intercept, (pthread_mutex_t *mutex, clockid_t clockid, const struct timespec *abs_timeout), (mutex, clockid, abs_timeout)); +#endif static __always_inline int pthread_mutex_unlock_intercept(pthread_mutex_t *mutex) @@ -1196,6 +1198,7 @@ PTH_FUNCS(int, condZureltimedwait, pthread_cond_timedwait_intercept, #endif /* VGO_solaris */ +#if defined(HAVE_CLOCKID_T) static __always_inline int pthread_cond_clockwait_intercept(pthread_cond_t *cond, pthread_mutex_t *mutex, @@ -1217,6 +1220,7 @@ PTH_FUNCS(int, pthreadZucondZuclockwait, pthread_cond_clockwait_intercept, (pthread_cond_t *cond, pthread_mutex_t *mutex, clockid_t clockid, const struct timespec* abstime), (cond, mutex, clockid, abstime)); +#endif // NOTE: be careful to intercept only pthread_cond_signal() and not Darwin's @@ -1814,6 +1818,8 @@ PTH_FUNCS(int, pthreadZurwlockZureltimedrdlockZunp, (rwlock, timeout)); #endif /* VGO_solaris */ + +#if defined(HAVE_CLOCKID_T) static __always_inline int pthread_rwlock_clockrdlock_intercept(pthread_rwlock_t* rwlock, clockid_t clockid, @@ -1834,6 +1840,7 @@ PTH_FUNCS(int, pthreadZurwlockZuclockrdlock, pthread_rwlock_clockrdlock_intercept, (pthread_rwlock_t* rwlock, clockid_t clockid, const struct timespec *timeout), (rwlock, clockid, timeout)); +#endif static __always_inline int pthread_rwlock_timedwrlock_intercept(pthread_rwlock_t* rwlock, @@ -1861,6 +1868,8 @@ PTH_FUNCS(int, pthreadZurwlockZureltimedwrlockZunp, (rwlock, timeout)); #endif /* VGO_solaris */ + +#if defined(HAVE_CLOCKID_T) static __always_inline int pthread_rwlock_clockwrlock_intercept(pthread_rwlock_t* rwlock, clockid_t clockid, @@ -1881,6 +1890,7 @@ PTH_FUNCS(int, pthreadZurwlockZuclockwrlock, pthread_rwlock_clockwrlock_intercept, (pthread_rwlock_t* rwlock, clockid_t clockid, const struct timespec *timeout), (rwlock, clockid, timeout)); +#endif static __always_inline diff --git a/helgrind/hg_intercepts.c b/helgrind/hg_intercepts.c index 7260c89aa0..0d29cb3bfa 100644 --- a/helgrind/hg_intercepts.c +++ b/helgrind/hg_intercepts.c @@ -1110,7 +1110,7 @@ PTH_FUNC(int, pthreadZumutexZureltimedlock, // pthread_mutex_reltimedlock } #endif -#if defined(VGP_linux) +#if defined(VGO_linux) //----------------------------------------------------------- // glibc: pthread_mutex_clocklock // |
|
From: Mark W. <ma...@so...> - 2022-04-11 13:58:34
|
The signed tag 'VALGRIND_3_19_0' was created pointing to:
8d3c8034b8... -> 3.19.0 final.
Tagger: Mark Wielaard <ma...@kl...>
Date: Mon Apr 11 15:57:55 2022 +0200
valgrind 3.19.0 release
|
|
From: Mark W. <ma...@so...> - 2022-04-11 13:32:45
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=8d3c8034b87db7b1d47285b053a05e6ad277c0d1 commit 8d3c8034b87db7b1d47285b053a05e6ad277c0d1 Author: Mark Wielaard <ma...@kl...> Date: Mon Apr 11 15:09:40 2022 +0200 -> 3.19.0 final. Diff: --- configure.ac | 4 ++-- docs/xml/vg-entities.xml.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index da50a48491..e02dd0bcba 100755 --- a/configure.ac +++ b/configure.ac @@ -17,8 +17,8 @@ m4_define([v_major_ver], [3]) m4_define([v_minor_ver], [19]) m4_define([v_micro_ver], [0]) -m4_define([v_suffix_ver], [RC2]) -m4_define([v_rel_date], ["08 Apr 2022"]) +m4_define([v_suffix_ver], []) +m4_define([v_rel_date], ["11 Apr 2022"]) m4_define([v_version], m4_if(v_suffix_ver, [], [v_major_ver.v_minor_ver.v_micro_ver], diff --git a/docs/xml/vg-entities.xml.in b/docs/xml/vg-entities.xml.in index 681f607711..0d2a4313c3 100644 --- a/docs/xml/vg-entities.xml.in +++ b/docs/xml/vg-entities.xml.in @@ -2,7 +2,7 @@ <!ENTITY vg-jemail "ju...@va..."> <!ENTITY vg-vemail "val...@va..."> <!ENTITY cl-email "Jos...@gm..."> -<!ENTITY vg-lifespan "2000-2021"> +<!ENTITY vg-lifespan "2000-2022"> <!-- valgrind release + version stuff --> <!ENTITY rel-type "Release"> |
|
From: Mark W. <ma...@so...> - 2022-04-11 13:14:56
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=e47eb4face552a2e3d29c5e2c9617d0d6d6a556a commit e47eb4face552a2e3d29c5e2c9617d0d6d6a556a Author: Mark Wielaard <ma...@kl...> Date: Mon Apr 11 15:09:40 2022 +0200 -> 3.19.0 final. Diff: --- configure.ac | 4 ++-- docs/xml/vg-entities.xml.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index da50a48491..e02dd0bcba 100755 --- a/configure.ac +++ b/configure.ac @@ -17,8 +17,8 @@ m4_define([v_major_ver], [3]) m4_define([v_minor_ver], [19]) m4_define([v_micro_ver], [0]) -m4_define([v_suffix_ver], [RC2]) -m4_define([v_rel_date], ["08 Apr 2022"]) +m4_define([v_suffix_ver], []) +m4_define([v_rel_date], ["11 Apr 2022"]) m4_define([v_version], m4_if(v_suffix_ver, [], [v_major_ver.v_minor_ver.v_micro_ver], diff --git a/docs/xml/vg-entities.xml.in b/docs/xml/vg-entities.xml.in index 681f607711..0d2a4313c3 100644 --- a/docs/xml/vg-entities.xml.in +++ b/docs/xml/vg-entities.xml.in @@ -2,7 +2,7 @@ <!ENTITY vg-jemail "ju...@va..."> <!ENTITY vg-vemail "val...@va..."> <!ENTITY cl-email "Jos...@gm..."> -<!ENTITY vg-lifespan "2000-2021"> +<!ENTITY vg-lifespan "2000-2022"> <!-- valgrind release + version stuff --> <!ENTITY rel-type "Release"> |
|
From: Mark W. <ma...@so...> - 2022-04-11 13:14:45
|
The signed tag 'VALGRIND_3_19_0' was created pointing to:
e47eb4face... -> 3.19.0 final.
Tagger: Mark Wielaard <ma...@kl...>
Date: Mon Apr 11 15:10:55 2022 +0200
valgrind 3.19.0 release
Diff:
Summary of changes (added commits):
-----------------------------------
e47eb4f... -> 3.19.0 final.
|
|
From: Mark W. <ma...@so...> - 2022-04-11 12:53:16
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=4c27f0f7649eb02336dcd0af9d2f8977b20d3a9f commit 4c27f0f7649eb02336dcd0af9d2f8977b20d3a9f Author: Mark Wielaard <ma...@kl...> Date: Mon Apr 11 14:45:49 2022 +0200 Extend helgrind suppression for _IO_*xsputn* FILE* state manipulation commit 7b5867b1f "helgrind reports false races for printfs using mempcpy on FILE* state" extended the helgrind-glibc-io-xsputn suppression by also covering mempcpy (instead of __GI_mempcpy). The test added in that commit exposed a couple of other variants of this suppression where _IO_*xsputn* called memcpy (instead of mempcpy) and/or had an extra indirection/function in between. Replace the two two suppressions with one that covers all cases where _IO_*xsputn* *mem*cpy variants with possibly another ... function in between. https://bugs.kde.org/show_bug.cgi?id=450962 Diff: --- glibc-2.X-helgrind.supp.in | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/glibc-2.X-helgrind.supp.in b/glibc-2.X-helgrind.supp.in index 8e1a10fa55..0f76ad0e9a 100644 --- a/glibc-2.X-helgrind.supp.in +++ b/glibc-2.X-helgrind.supp.in @@ -49,15 +49,8 @@ { helgrind-glibc-io-xsputn-mempcpy Helgrind:Race - fun:__GI_mempcpy - fun:_IO_*xsputn* - obj:@GLIBC_LIBC_PATH@ -} - -{ - helgrind-glibc-io-xsputn-mempcpy-glibc2-26+ - Helgrind:Race - fun:mempcpy + fun:*mem*cpy + ... fun:_IO_*xsputn* obj:@GLIBC_LIBC_PATH@ } |
|
From: Paul F. <pa...@so...> - 2022-04-10 21:06:48
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=2b33a318d8d0844337bb0350008002c73e976203 commit 2b33a318d8d0844337bb0350008002c73e976203 Author: Paul Floyd <pj...@wa...> Date: Sun Apr 10 23:02:13 2022 +0200 Update Solaris execve with checks for NULL argv Also requires 2 expected to be updated Diff: --- coregrind/m_syswrap/syswrap-solaris.c | 40 +++++++++++++++++++++++++++----- memcheck/tests/solaris/execx.stderr.exp | 4 ++++ memcheck/tests/solaris/scalar.stderr.exp | 4 ++++ 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/coregrind/m_syswrap/syswrap-solaris.c b/coregrind/m_syswrap/syswrap-solaris.c index ea46073427..992fbeb9c4 100644 --- a/coregrind/m_syswrap/syswrap-solaris.c +++ b/coregrind/m_syswrap/syswrap-solaris.c @@ -3618,6 +3618,10 @@ PRE(sys_fdsync) PRE(sys_execve) { Int i, j; + Addr arg_2_check; + const char* str2 = "execve(argv)"; + const char* str3 = "execve(argv[0])"; + const char* str4 = "execve(argv[i])"; /* This is a Solaris specific version of the generic pre-execve wrapper. */ #if defined(SOLARIS_EXECVE_SYSCALL_TAKES_FLAGS) @@ -3645,12 +3649,8 @@ PRE(sys_execve) if (ARG1_is_fd == False) PRE_MEM_RASCIIZ("execve(filename)", ARG1); - if (ARG2) - ML_(pre_argv_envp)(ARG2, tid, "execve(argv)", "execve(argv[i])"); - if (ARG3) - ML_(pre_argv_envp)(ARG3, tid, "execve(envp)", "execve(envp[i])"); - - /* Erk. If the exec fails, then the following will have made a mess of + + /* Erk. If the exec fails, then the following will have made a mess of things which makes it hard for us to continue. The right thing to do is piece everything together again in POST(execve), but that's close to impossible. Instead, we make an effort to check that the execve will @@ -3678,6 +3678,34 @@ PRE(sys_execve) VG_(unimplemented)("Syswrap of execve where fd points to a hardlink."); } + arg_2_check = (Addr)ARG2; + + /* argv[] should not be NULL and valid. */ + PRE_MEM_READ(str2, arg_2_check, sizeof(Addr)); + + /* argv[0] should not be NULL and valid. */ + if (ML_(safe_to_deref)((HChar **) (Addr)arg_2_check, sizeof(HChar *))) { + Addr argv0 = *(Addr*)arg_2_check; + PRE_MEM_RASCIIZ( str3, argv0 ); + /* The rest of argv can be NULL or a valid string pointer. */ + if (VG_(am_is_valid_for_client)(arg_2_check, sizeof(HChar), VKI_PROT_READ)) { + arg_2_check += sizeof(HChar*); + ML_(pre_argv_envp)( arg_2_check, tid, str2, str4 ); + } + } else { + SET_STATUS_Failure(VKI_EFAULT); + return; + } + + if (ARG3 != 0) { + /* At least the terminating NULL must be addressable. */ + if (!ML_(safe_to_deref)((HChar **) (Addr)ARG3, sizeof(HChar *))) { + SET_STATUS_Failure(VKI_EFAULT); + return; + } + ML_(pre_argv_envp)( ARG3, tid, "execve(envp)", "execve(envp[i])" ); + } + /* Check that the name at least begins in client-accessible storage. */ if (ARG1_is_fd == False) { if ((fname == NULL) || !ML_(safe_to_deref)(fname, 1)) { diff --git a/memcheck/tests/solaris/execx.stderr.exp b/memcheck/tests/solaris/execx.stderr.exp index 9e86cbdf84..30c885b72c 100644 --- a/memcheck/tests/solaris/execx.stderr.exp +++ b/memcheck/tests/solaris/execx.stderr.exp @@ -2,3 +2,7 @@ Syscall param execve(filename) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd +Syscall param execve(argv) points to unaddressable byte(s) + ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + diff --git a/memcheck/tests/solaris/scalar.stderr.exp b/memcheck/tests/solaris/scalar.stderr.exp index df1f974758..1a04979d19 100644 --- a/memcheck/tests/solaris/scalar.stderr.exp +++ b/memcheck/tests/solaris/scalar.stderr.exp @@ -1011,6 +1011,10 @@ Syscall param execve(filename) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd +Syscall param execve(argv) points to unaddressable byte(s) + ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + --------------------------------------------------------- 60: SYS_umask 1s 0m --------------------------------------------------------- |
|
From: Paul F. <pj...@wa...> - 2022-04-10 19:43:13
|
On 4/9/22 00:56, Mark Wielaard wrote: > Hi valgrind hackers, > > An RC2 tarball for 3.19.0 is now available at > ftp://sourceware.org/pub/valgrind/valgrind-3.19.0.RC2.tar.bz2 > https://sourceware.org/pub/valgrind/valgrind-3.19.0.RC2.tar.bz2 > (md5sum = 002f3b97f93f16c8afa957bee90b2198) > > Please give it a try in configurations that are important for you and > report any problems you have, either on this mailing list, or > (preferably) via our bug tracker at > https://bugs.kde.org/enter_bug.cgi?product=valgrind > > I believe this is in pretty good shape. So unless someone reports a > showstopper this weekend I like to do a 3.19.0 final release on > Monday (April 11). > OK on FreeBSD. Haven't had time to test macOS, still working on fixing execve on Solaris. A+ Paul |
|
From: Paul F. <pa...@so...> - 2022-04-10 19:02:54
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=5f83395616befb96af66ec2cc7f4330605271faf commit 5f83395616befb96af66ec2cc7f4330605271faf Author: Paul Floyd <pj...@wa...> Date: Sun Apr 10 20:55:28 2022 +0200 Fix a crash handling fexecve. Found this by testing the Solaris execx (the bits that are Linux-cmpatible) test. That was giving --28286-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting --28286-- si_code=2; Faulting address: 0x4A0095A; sp: 0x1002ca9c88 valgrind: the 'impossible' happened: Killed by fatal signal host stacktrace: ==28286== at 0x5803DE54: vgPlain_strcpy (m_libcbase.c:309) ==28286== by 0x5810A9B3: vgSysWrap_linux_sys_execveat_before (syswrap-linux.c:13310) ==28286== by 0x580953C9: vgPlain_client_syscall (syswrap-main.c:2234) It's a mistake to copy the path obtained with VG_(resolve_filename) to the client ARG2, it's unlikely to have space for the path. Instead just copy the pointer. Diff: --- coregrind/m_syswrap/syswrap-linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 38edccc983..e2fafd4213 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -13307,7 +13307,7 @@ PRE(sys_execveat) if (path[0] == '\0') { if (ARG5 & VKI_AT_EMPTY_PATH) { if (VG_(resolve_filename)(ARG1, &buf)) { - VG_(strcpy)(path, buf); + path = buf; check_pathptr = False; } } |
|
From: Paul F. <pj...@wa...> - 2022-04-10 08:42:53
|
On 04/ 9/22 02:56 AM, Mark Wielaard wrote: > Hi valgrind hackers, > > An RC2 tarball for 3.19.0 is now available at > ftp://sourceware.org/pub/valgrind/valgrind-3.19.0.RC2.tar.bz2 > https://sourceware.org/pub/valgrind/valgrind-3.19.0.RC2.tar.bz2 > (md5sum = 002f3b97f93f16c8afa957bee90b2198) > > Please give it a try in configurations that are important for you and > report any problems you have, either on this mailing list, or > (preferably) via our bug tracker at > https://bugs.kde.org/enter_bug.cgi?product=valgrind > > I believe this is in pretty good shape. So unless someone reports a > showstopper this weekend I like to do a 3.19.0 final release on > Monday (April 11). > Hi Mark Solaris 11.3 amd64 5 new stderr failures memcheck/tests/execve1 (stderr) memcheck/tests/execve2 (stderr) helgrind/tests/pth_mempcpy_false_races (stderr) drd/tests/pth_cond_destroy_busy (stderr) none/tests/execve (stderr) I'm not going to try to analyze the drd/hg diffs. memcheck/tests/execve[12] is a difference in the error message, not sure why execve two message diffs and a VG crash the problem is that Solaris doesn't use the generic execve wrapper and it doesn't check for null argv[] I'll see if I can fix that today. 1 new stderr pass drd/tests/swapcontext (stderr) 4 new stdtout failures cachegrind/tests/ann1 (post) cachegrind/tests/ann2 (post) callgrind/tests/ann1 (post) callgrind/tests/ann2 (post) these look fairly harmless, not sure why they are not on other platforms +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@ Source file 'a.c' is more recent than input file 'cgout-test'. +@ Annotations may not be correct. +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + A+ Paul |
|
From: Carl L. <ce...@us...> - 2022-04-09 20:26:50
|
Mark: On Sat, 2022-04-09 at 00:21 +0000, Mark Wielaard wrote: > https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=116b93b49080dc61363b2a8da85f8f1bb32c5640 > > commit 116b93b49080dc61363b2a8da85f8f1bb32c5640 > Author: Mark Wielaard <ma...@kl...> > Date: Sat Apr 9 02:13:46 2022 +0200 > > -> 3.19.0.RC2 Tested on Power 8LE, Power 8BE, Power 9, Power 10. All looks good to go. Carl |
|
From: Mark W. <ma...@kl...> - 2022-04-09 00:56:31
|
Hi valgrind hackers, An RC2 tarball for 3.19.0 is now available at ftp://sourceware.org/pub/valgrind/valgrind-3.19.0.RC2.tar.bz2 https://sourceware.org/pub/valgrind/valgrind-3.19.0.RC2.tar.bz2 (md5sum = 002f3b97f93f16c8afa957bee90b2198) Please give it a try in configurations that are important for you and report any problems you have, either on this mailing list, or (preferably) via our bug tracker at https://bugs.kde.org/enter_bug.cgi?product=valgrind I believe this is in pretty good shape. So unless someone reports a showstopper this weekend I like to do a 3.19.0 final release on Monday (April 11). Cheers, Mark |
|
From: Mark W. <ma...@so...> - 2022-04-09 00:21:28
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=116b93b49080dc61363b2a8da85f8f1bb32c5640 commit 116b93b49080dc61363b2a8da85f8f1bb32c5640 Author: Mark Wielaard <ma...@kl...> Date: Sat Apr 9 02:13:46 2022 +0200 -> 3.19.0.RC2 Diff: --- NEWS | 3 ++- configure.ac | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 1fa918dfbd..dcce409261 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Release 3.19.0 (08 Apr 2022) +Release 3.19.0 (11 Apr 2022) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, @@ -106,6 +106,7 @@ To see details of a given bug, visit where XXXXXX is the bug number as listed above. (3.19.0.RC1: 02 Apr 2022) +(3.19.0.RC2: 08 Apr 2022) Release 3.18.0 (15 Oct 2021) diff --git a/configure.ac b/configure.ac index 4bde7318cf..da50a48491 100755 --- a/configure.ac +++ b/configure.ac @@ -17,8 +17,8 @@ m4_define([v_major_ver], [3]) m4_define([v_minor_ver], [19]) m4_define([v_micro_ver], [0]) -m4_define([v_suffix_ver], [RC1]) -m4_define([v_rel_date], ["02 Apr 2022"]) +m4_define([v_suffix_ver], [RC2]) +m4_define([v_rel_date], ["08 Apr 2022"]) m4_define([v_version], m4_if(v_suffix_ver, [], [v_major_ver.v_minor_ver.v_micro_ver], |
|
From: Mark W. <ma...@so...> - 2022-04-08 13:36:54
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=7b5867b1fda1dbadc1291988828f6d6ad9438144 commit 7b5867b1fda1dbadc1291988828f6d6ad9438144 Author: Mark Wielaard <ma...@kl...> Date: Fri Apr 8 14:58:38 2022 +0200 helgrind reports false races for printfs using mempcpy on FILE* state We already have a suppression for helgrind which is for when glibc uses __GI_mempcpy to manipulate internal FILE state (this was bug 352130). But since glibc-2.26 mempcpy is used instead __GI_mempcpy, making the suppresion from the original bug obsolete. This patch adds a new suppression using mempcpy but doesn't replace the original suppression for older systems. Patch adding suppression + testcase by Jesus Checa <jc...@re...> https://bugs.kde.org/show_bug.cgi?id=450962 Diff: --- .gitignore | 1 + glibc-2.X-helgrind.supp.in | 8 ++++ helgrind/tests/Makefile.am | 2 + helgrind/tests/pth_mempcpy_false_races.c | 50 +++++++++++++++++++++++ helgrind/tests/pth_mempcpy_false_races.stderr.exp | 0 helgrind/tests/pth_mempcpy_false_races.vgtest | 3 ++ 6 files changed, 64 insertions(+) diff --git a/.gitignore b/.gitignore index 5026fcbc78..94ff17d299 100644 --- a/.gitignore +++ b/.gitignore @@ -666,6 +666,7 @@ /helgrind/tests/Makefile.in /helgrind/tests/pth_barrier /helgrind/tests/pth_destroy_cond +/helgrind/tests/pth_mempcpy_false_races /helgrind/tests/rwlock_race /helgrind/tests/rwlock_test /helgrind/tests/shmem_abits diff --git a/glibc-2.X-helgrind.supp.in b/glibc-2.X-helgrind.supp.in index cecf3ceab9..8e1a10fa55 100644 --- a/glibc-2.X-helgrind.supp.in +++ b/glibc-2.X-helgrind.supp.in @@ -54,6 +54,14 @@ obj:@GLIBC_LIBC_PATH@ } +{ + helgrind-glibc-io-xsputn-mempcpy-glibc2-26+ + Helgrind:Race + fun:mempcpy + fun:_IO_*xsputn* + obj:@GLIBC_LIBC_PATH@ +} + { helgrind-glibc2X-005 Helgrind:Race diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am index cf7f76d46a..05e145f7b8 100755 --- a/helgrind/tests/Makefile.am +++ b/helgrind/tests/Makefile.am @@ -58,6 +58,7 @@ EXTRA_DIST = \ pth_cond_destroy_busy.stderr.exp-ppc64 \ pth_cond_destroy_busy.stderr.exp-solaris \ pth_cond_destroy_busy.stderr.exp-freebsd \ + pth_mempcpy_false_races.vgtest pth_mempcpy_false_races.stderr.exp \ pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \ rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \ rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \ @@ -152,6 +153,7 @@ check_PROGRAMS = \ locked_vs_unlocked2 \ locked_vs_unlocked3 \ pth_destroy_cond \ + pth_mempcpy_false_races \ shmem_abits \ stackteardown \ t2t \ diff --git a/helgrind/tests/pth_mempcpy_false_races.c b/helgrind/tests/pth_mempcpy_false_races.c new file mode 100644 index 0000000000..90716435d6 --- /dev/null +++ b/helgrind/tests/pth_mempcpy_false_races.c @@ -0,0 +1,50 @@ +/* Related bugs: + * https://bugs.kde.org/show_bug.cgi?id=352130 + * https://bugs.kde.org/show_bug.cgi?id=450962 + * This reproducer has no real race conditions but since helgrind doesn't see + * or know about the glibc internal locking done for FILE *state, it will report + * a race when several threads run printf due to this fact. + */ + +#include <stdio.h> +#include <pthread.h> + +pthread_t thread; + +void* thread3 (void* d) +{ + int count3 = 0; + + while(count3 < 100){ + printf("Thread 3: %d\n", count3++); + } + return NULL; +} + +void* thread2 (void* d) +{ + int count2 = 0; + + while(count2 < 1000){ + // + printf("Thread 2: %d\n", count2++); + } + return NULL; +} + +int main (){ + + pthread_create (&thread, NULL, thread2, NULL); + pthread_create (&thread, NULL, thread3, NULL); + + //Thread 1 + int count1 = 0; + + while(count1 < 10){ + printf("Thread 1: %d\n", count1++); + } + + pthread_join(thread,NULL); + return 0; +} + diff --git a/helgrind/tests/pth_mempcpy_false_races.stderr.exp b/helgrind/tests/pth_mempcpy_false_races.stderr.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/helgrind/tests/pth_mempcpy_false_races.vgtest b/helgrind/tests/pth_mempcpy_false_races.vgtest new file mode 100644 index 0000000000..9e3c6d4b45 --- /dev/null +++ b/helgrind/tests/pth_mempcpy_false_races.vgtest @@ -0,0 +1,3 @@ +prog: pth_mempcpy_false_races +vgopts: -q +stdout_filter: ../../gdbserver_tests/filter_make_empty |
|
From: Mark W. <ma...@kl...> - 2022-04-08 10:26:09
|
Hi valgrind hackers, On Sat, 2022-04-02 at 21:51 +0200, Mark Wielaard wrote: > An RC1 tarball for 3.19.0 is now available at > ftp://sourceware.org/pub/valgrind/valgrind-3.19.0.RC1.tar.bz2 > https://sourceware.org/pub/valgrind/valgrind-3.19.0.RC1.tar.bz2 > (md5sum = d784310ca4c159e4d6c36c7dacffc3ed) > > Please give it a try in configurations that are important for you and > report any problems you have, either on this mailing list, or > (preferably) via our bug tracker at > https://bugs.kde.org/enter_bug.cgi?product=valgrind > > There are are couple of issues I like to look into which have patches > that need review: > 451878 Add support for new syscall memfd_secret > 450437 Warn for execve syscall with argv or argv[0] being NULL. > 445011 SIGCHLD is sent when valgrind uses debuginfod-find > > And this not yet fully understood issue: > 452058 Generated suppressions contain a mix of mangled (physical) > and demangled (inline) frames > > If there are any other urgent issues please do propose patches. > > I'll like to do an RC2 on Wednesday, with a final release on Friday, > April 8th if everything goes well. So, I didn't make the RC2 on Wednesday because we are still fixing some bugs (although in general things look pretty good). I'll do an RC2 later today (Friday) and if that looks good after some more testing do the final 3.19.0 release on Monday (April 11). Cheers, Mark |
|
From: Mark W. <ma...@so...> - 2022-04-08 07:52:22
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=a1bb40171ab2289043856c6893522449ccc9fdff commit a1bb40171ab2289043856c6893522449ccc9fdff Author: Mark Wielaard <ma...@kl...> Date: Fri Apr 8 09:42:10 2022 +0200 Move ht_sigchld_ignore and ht_ignore_node to pub_tool_signals.h ht_sigchld_ignore and ht_ignore_node were defined in pub_core_signals.h which cannot include any other tool header. ...checking header files and include directives *** File coregrind/pub_core_signals.h must not include pub_tool_hashtable.h So move the definition and type to pub_tool_signals.h Diff: --- coregrind/pub_core_signals.h | 10 ---------- include/pub_tool_signals.h | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/coregrind/pub_core_signals.h b/coregrind/pub_core_signals.h index 1c86ee5f63..ae8555ba80 100644 --- a/coregrind/pub_core_signals.h +++ b/coregrind/pub_core_signals.h @@ -35,7 +35,6 @@ #include "pub_tool_signals.h" // I want to get rid of this header... #include "pub_core_vki.h" // vki_sigset_t et al. -#include "pub_tool_hashtable.h" /* Highest signal the kernel will let us use */ extern Int VG_(max_signal); @@ -86,15 +85,6 @@ extern Bool VG_(extend_stack)(ThreadId tid, Addr addr); before using that signal to kill the process. */ extern void VG_(set_default_handler)(Int sig); -/* Hash table of PIDs from which SIGCHLD is ignored. */ -extern VgHashTable *ht_sigchld_ignore; - -/* Hash table node where each key represents a PID. */ -typedef struct _ht_ignore_node { - struct _ht_ignore_node *next; - UWord key; -} ht_ignore_node; - #endif // __PUB_CORE_SIGNALS_H /*--------------------------------------------------------------------*/ diff --git a/include/pub_tool_signals.h b/include/pub_tool_signals.h index 0de30465c1..f037cd5d7e 100644 --- a/include/pub_tool_signals.h +++ b/include/pub_tool_signals.h @@ -30,6 +30,7 @@ #define __PUB_TOOL_SIGNALS_H #include "pub_tool_basics.h" // Addr +#include "pub_tool_hashtable.h" // VgHashTable // Register an interest in apparently internal faults; used code which // wanders around dangerous memory (ie, leakcheck). The catcher is @@ -43,6 +44,15 @@ typedef void (*fault_catcher_t)(Int sig, Addr addr); extern fault_catcher_t VG_(set_fault_catcher)(fault_catcher_t catcher); +/* Hash table of PIDs from which SIGCHLD is ignored. */ +extern VgHashTable *ht_sigchld_ignore; + +/* Hash table node where each key represents a PID. */ +typedef struct _ht_ignore_node { + struct _ht_ignore_node *next; + UWord key; +} ht_ignore_node; + #endif // __PUB_TOOL_SIGNALS_H /*--------------------------------------------------------------------*/ |
|
From: Mark W. <ma...@so...> - 2022-04-07 21:51:18
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=2c0fb665699309e1e02a02084324748f46a6c788 commit 2c0fb665699309e1e02a02084324748f46a6c788 Author: Randy MacLeod <Ran...@wi...> Date: Tue Oct 16 21:01:04 2018 -0400 Fix out of tree builds. The paths to these files need to be fully specified in the out of tree build case. glibc-2.X.supp is a generated file so the full path is deliberately not specified in that case. Also adjust the mpi include dir location as valgrind.h is generated as well and needs to be taken out of build dir. Also adjust the location of generated xml file. And the search paths for the xmllint, xsltproc and xmlto programs. Signed-off-by: Alexander Kanavin <ale...@gm...> Diff: --- NEWS | 1 + configure.ac | 72 ++++++++++++++++++++++++++++---------------------------- docs/Makefile.am | 13 ++++++---- mpi/Makefile.am | 4 ++-- 4 files changed, 47 insertions(+), 43 deletions(-) diff --git a/NEWS b/NEWS index d3bb86d0f6..1fa918dfbd 100644 --- a/NEWS +++ b/NEWS @@ -71,6 +71,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 444925 fexecve syscall wrapper not properly implemented 445032 valgrind/memcheck crash with SIGSEGV when SIGVTALRM timer used and libthr.so associated +445211 Fix out of tree builds 445300 [PATCH] Fix building tests with Musl 445011 SIGCHLD is sent when valgrind uses debuginfod-find 445354 arm64 backend: incorrect code emitted for doubleword CAS diff --git a/configure.ac b/configure.ac index 04c306efbb..4bde7318cf 100755 --- a/configure.ac +++ b/configure.ac @@ -454,7 +454,7 @@ case "${host_os}" in ;; esac - DEFAULT_SUPP="freebsd.supp freebsd-helgrind.supp freebsd-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/freebsd.supp $srcdir/freebsd-helgrind.supp $srcdir/freebsd-drd.supp ${DEFAULT_SUPP}" ;; *darwin*) @@ -493,56 +493,56 @@ case "${host_os}" in 9.*) AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard]) AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}" ;; 10.*) AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard]) AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 11.*) AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion]) AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 12.*) AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion]) AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 13.*) AC_MSG_RESULT([Darwin 13.x (${kernel}) / Mac OS X 10.9 Mavericks]) AC_DEFINE([DARWIN_VERS], DARWIN_10_9, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin13.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin13.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 14.*) AC_MSG_RESULT([Darwin 14.x (${kernel}) / Mac OS X 10.10 Yosemite]) AC_DEFINE([DARWIN_VERS], DARWIN_10_10, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin14.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin14.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 15.*) AC_MSG_RESULT([Darwin 15.x (${kernel}) / Mac OS X 10.11 El Capitan]) AC_DEFINE([DARWIN_VERS], DARWIN_10_11, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin15.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin15.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 16.*) AC_MSG_RESULT([Darwin 16.x (${kernel}) / macOS 10.12 Sierra]) AC_DEFINE([DARWIN_VERS], DARWIN_10_12, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin16.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin16.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; 17.*) AC_MSG_RESULT([Darwin 17.x (${kernel}) / macOS 10.13 High Sierra]) AC_DEFINE([DARWIN_VERS], DARWIN_10_13, [Darwin / Mac OS X version]) - DEFAULT_SUPP="darwin17.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin17.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" ;; *) AC_MSG_RESULT([unsupported (${kernel})]) @@ -558,10 +558,10 @@ case "${host_os}" in uname_v=$( uname -v ) case "$uname_v" in 11.4.*) - DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/solaris12.supp ${DEFAULT_SUPP}" ;; *) - DEFAULT_SUPP="solaris11.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/solaris11.supp ${DEFAULT_SUPP}" ;; esac ;; @@ -569,7 +569,7 @@ case "${host_os}" in solaris2.12*) AC_MSG_RESULT([ok (${host_os})]) VGCONF_OS="solaris" - DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/solaris12.supp ${DEFAULT_SUPP}" ;; *) @@ -1283,15 +1283,15 @@ AC_MSG_CHECKING([the glibc version]) case "${GLIBC_VERSION}" in 2.2) AC_MSG_RESULT(${GLIBC_VERSION} family) - DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/glibc-2.2.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ;; 2.[[3-6]]) AC_MSG_RESULT(${GLIBC_VERSION} family) - DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ;; 2.[[7-9]]) AC_MSG_RESULT(${GLIBC_VERSION} family) @@ -1304,8 +1304,8 @@ case "${GLIBC_VERSION}" in AC_DEFINE([GLIBC_MANDATORY_STRLEN_REDIRECT], 1, [Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10)]) DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ;; 2.*) AC_MSG_RESULT(${GLIBC_VERSION} family) @@ -1314,8 +1314,8 @@ case "${GLIBC_VERSION}" in AC_DEFINE([GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT], 1, [Define to 1 if index() and strlen() have been optimized heavily (x86 glibc >= 2.12)]) DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ;; darwin) AC_MSG_RESULT(Darwin) @@ -1330,7 +1330,7 @@ case "${GLIBC_VERSION}" in bionic) AC_MSG_RESULT(Bionic) AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic]) - DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/bionic.supp ${DEFAULT_SUPP}" ;; solaris) AC_MSG_RESULT(Solaris) @@ -1340,7 +1340,7 @@ case "${GLIBC_VERSION}" in musl) AC_MSG_RESULT(Musl) AC_DEFINE([MUSL_LIBC], 1, [Define to 1 if you're using Musl libc]) - DEFAULT_SUPP="musl.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/musl.supp ${DEFAULT_SUPP}" ;; 2.0|2.1|*) AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}]) @@ -1359,8 +1359,8 @@ if test "$VGCONF_OS" != "solaris"; then # attempt to detect whether such libraries are installed on the # build machine (or even if any X facilities are present); just # add the suppressions antidisirregardless. - DEFAULT_SUPP="xfree-4.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="xfree-3.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/xfree-4.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="$srcdir/xfree-3.supp ${DEFAULT_SUPP}" fi diff --git a/docs/Makefile.am b/docs/Makefile.am index 5c777a263a..3850d7b744 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -124,11 +124,12 @@ LOGFILE = print.log # validation stuff XMLLINT = xmllint -XMLLINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent +XMLLINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent \ + --path $(top_builddir)/docs/xml # stylesheet processor XSLTPROC = xsltproc -XSLTPROC_FLAGS = --nonet --xinclude +XSLTPROC_FLAGS = --nonet --xinclude --path $(top_builddir)/docs/xml # stylesheets XSL_HTML_CHUNK_STYLE = $(mylibdir)/vg-html-chunk.xsl @@ -143,7 +144,7 @@ XSL_MAN_STYLES = \ # Input files for valid-manual and valid-manpages MANUAL_XML_FILES = $(myxmldir)/index.xml \ - $(myxmldir)/vg-entities.xml \ + $(top_builddir)/docs/xml/vg-entities.xml \ $(myxmldir)/quick-start-guide.xml \ $(myxmldir)/manual.xml \ $(myxmldir)/manual-intro.xml \ @@ -238,7 +239,8 @@ print-docs: cp $(myimgdir)/*.png $(myprintdir)/images && \ xmlto -v $(WITH_FOP) --stringparam=keep.relative.image.uris="1" \ -x $(XSL_FO_STYLE) \ - --searchpath print pdf $(myxmldir)/index.xml &> $(LOGFILE) && \ + --searchpath $(top_builddir)/docs/xml:print \ + pdf $(myxmldir)/index.xml &> $(LOGFILE) && \ echo "Generating PS file: $(myprintdir)/index.ps ..." && \ pdftops index.pdf && \ mv index.pdf index.ps $(myprintdir) && \ @@ -353,7 +355,8 @@ download-docs: cp $(myimgdir)/*.png $(vgdir)/print/images/ xmlto -v $(WITH_FOP) --stringparam=keep.relative.image.uris="1" \ -x $(XSL_FO_STYLE) \ - --searchpath print pdf $(myxmldir)/index.xml &> $(LOGFILE) + --searchpath $(top_builddir)/docs/xml:print \ + pdf $(myxmldir)/index.xml &> $(LOGFILE) mv index.pdf $(vgdir)/print/manual.pdf @echo "" @echo "Generating valgrind_manual.ps.bz2 ..." diff --git a/mpi/Makefile.am b/mpi/Makefile.am index 69b69aa925..e57e5aa85c 100644 --- a/mpi/Makefile.am +++ b/mpi/Makefile.am @@ -56,14 +56,14 @@ endif if BUILD_MPIWRAP_PRI libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = libmpiwrap.c -libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = -I$(top_srcdir)/include +libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = -I$(top_builddir)/include libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \ $(CFLAGS_MPI) $(MPI_FLAG_M3264_PRI) -Wno-deprecated-declarations libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = $(LDFLAGS_MPI) endif if BUILD_MPIWRAP_SEC libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = libmpiwrap.c -libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = -I$(top_srcdir)/include +libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = -I$(top_builddir)/include libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \ $(CFLAGS_MPI) $(MPI_FLAG_M3264_SEC) -Wno-deprecated-declarations libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = $(LDFLAGS_MPI) |
|
From: Mark W. <ma...@so...> - 2022-04-07 21:42:46
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=7959d0661b2bce47a0f85b219f328b2239c4ffff commit 7959d0661b2bce47a0f85b219f328b2239c4ffff Author: Mark Wielaard <ma...@kl...> Date: Thu Apr 7 22:02:12 2022 +0200 Update mc_main Copyright message to include 2022 We haven't ran auxprogs/change-copyright-year since we switched to git. This means most Copyright year ranges still say 2017. The script also doesn't work for years >= 2020. Instead of trying to figure out how to correctly update the per file Copyright year ranges just update the main copyright notice that the program outputs on startup. Diff: --- memcheck/mc_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c index 47b370bf51..979a654097 100644 --- a/memcheck/mc_main.c +++ b/memcheck/mc_main.c @@ -8348,7 +8348,7 @@ static void mc_pre_clo_init(void) VG_(details_version) (NULL); VG_(details_description) ("a memory error detector"); VG_(details_copyright_author)( - "Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al."); + "Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al."); VG_(details_bug_reports_to) (VG_BUGS_TO); VG_(details_avg_translation_sizeB) ( 640 ); |