From: Paul Floyd Date: Thu, 9 Dec 2021 21:54:23 +0000 (+0100) Subject: FreeBSD sigreturn arg names again X-Git-Tag: VALGRIND_3_19_0~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01048e33df95b413642b1479d747b065c948000a;p=thirdparty%2Fvalgrind.git FreeBSD sigreturn arg names again Also make drd/tests/shared_timed_mutex more robust Already not great using time delays, but the test seems to fail intermittently due to spurious wakeups. So instead of railing straight away, make it "three strikes and you're out". --- diff --git a/coregrind/m_syswrap/syswrap-amd64-freebsd.c b/coregrind/m_syswrap/syswrap-amd64-freebsd.c index c5685c4773..7302ffc429 100644 --- a/coregrind/m_syswrap/syswrap-amd64-freebsd.c +++ b/coregrind/m_syswrap/syswrap-amd64-freebsd.c @@ -422,7 +422,7 @@ PRE(sys_sigreturn) { PRINT("sys_sigreturn ( %#" FMT_REGWORD "x )", ARG1); PRE_REG_READ1(int, "sigreturn", - struct vki_ucontext *, ucp); + struct vki_ucontext *, scp); PRE_MEM_READ( "sigreturn(scp)", ARG1, sizeof(struct vki_ucontext) ); PRE_MEM_WRITE( "sigreturn(scp)", ARG1, sizeof(struct vki_ucontext) ); @@ -1064,10 +1064,10 @@ PRE(sys_fake_sigreturn) PRINT("sys_sigreturn ( %#" FMT_REGWORD "x )", ARG1); PRE_REG_READ1(long, "sigreturn", - struct vki_ucontext *, ucp); + struct vki_ucontext *, scp); - PRE_MEM_READ( "sigreturn(ucp)", ARG1, sizeof(struct vki_ucontext) ); - PRE_MEM_WRITE( "sigreturn(ucp)", ARG1, sizeof(struct vki_ucontext) ); + PRE_MEM_READ( "sigreturn(scp)", ARG1, sizeof(struct vki_ucontext) ); + PRE_MEM_WRITE( "sigreturn(scp)", ARG1, sizeof(struct vki_ucontext) ); vg_assert(VG_(is_valid_tid)(tid)); vg_assert(tid >= 1 && tid < VG_N_THREADS); diff --git a/coregrind/m_syswrap/syswrap-x86-freebsd.c b/coregrind/m_syswrap/syswrap-x86-freebsd.c index 4fd1ce5011..5c82f7db65 100644 --- a/coregrind/m_syswrap/syswrap-x86-freebsd.c +++ b/coregrind/m_syswrap/syswrap-x86-freebsd.c @@ -813,10 +813,10 @@ PRE(sys_sigreturn) { PRINT("sys_sigreturn ( %#" FMT_REGWORD "x )", ARG1); PRE_REG_READ1(int, "sigreturn", - struct vki_ucontext *, ucp); + struct vki_ucontext *, scp); - PRE_MEM_READ( "sigreturn(ucp)", ARG1, sizeof(struct vki_ucontext) ); - PRE_MEM_WRITE( "sigreturn(ucp)", ARG1, sizeof(struct vki_ucontext) ); + PRE_MEM_READ( "sigreturn(scp)", ARG1, sizeof(struct vki_ucontext) ); + PRE_MEM_WRITE( "sigreturn(scp)", ARG1, sizeof(struct vki_ucontext) ); } diff --git a/drd/tests/shared_timed_mutex.cpp b/drd/tests/shared_timed_mutex.cpp index 306d6bf27a..9741169672 100644 --- a/drd/tests/shared_timed_mutex.cpp +++ b/drd/tests/shared_timed_mutex.cpp @@ -15,12 +15,19 @@ bool reads_done = false; void f() { auto now=std::chrono::steady_clock::now(); - if (test_mutex.try_lock_until(now + std::chrono::seconds(3))) + auto then = now + std::chrono::seconds(3); + int i; + for (i = 0; i < 3 && std::chrono::steady_clock::now() < then; ++i) { - --global; - test_mutex.unlock(); + if (test_mutex.try_lock_until(then)) + { + --global; + test_mutex.unlock(); + break; + } } - else + + if (i == 3) { std::cerr << "Lock failed\n"; } @@ -29,11 +36,16 @@ void f() void g() { auto now=std::chrono::steady_clock::now(); - if (test_mutex.try_lock_shared_until(now + std::chrono::seconds(2))) + auto then = now + std::chrono::seconds(2); + int i; + for (i = 0; i < 3 && std::chrono::steady_clock::now() < then; ++i) { - test_mutex.unlock_shared(); + if (test_mutex.try_lock_shared_until(then)) + { + test_mutex.unlock_shared(); + } } - else + if (i == 3) { std::cerr << "Lock shared failed\n"; } diff --git a/memcheck/tests/freebsd/scalar.stderr.exp b/memcheck/tests/freebsd/scalar.stderr.exp index 3f16d12d61..80b4547fde 100644 --- a/memcheck/tests/freebsd/scalar.stderr.exp +++ b/memcheck/tests/freebsd/scalar.stderr.exp @@ -3188,10 +3188,10 @@ Warning: bad act handler address 0x........ in sigaction() --------------------------------------------------------- 417: SYS_sigreturn 1s 1m --------------------------------------------------------- -Syscall param sigreturn(ucp) contains uninitialised byte(s) +Syscall param sigreturn(scp) contains uninitialised byte(s) ... -Syscall param sigreturn(ucp) points to unaddressable byte(s) +Syscall param sigreturn(scp) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd diff --git a/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130 b/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130 index 309749f072..deaa61d6ff 100644 --- a/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130 +++ b/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130 @@ -3204,10 +3204,10 @@ Warning: bad act handler address 0x........ in sigaction() --------------------------------------------------------- 417: SYS_sigreturn 1s 1m --------------------------------------------------------- -Syscall param sigreturn(ucp) contains uninitialised byte(s) +Syscall param sigreturn(scp) contains uninitialised byte(s) ... -Syscall param sigreturn(ucp) points to unaddressable byte(s) +Syscall param sigreturn(scp) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd diff --git a/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130-x86 b/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130-x86 index 62ed782c5f..70919f47cb 100644 --- a/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130-x86 +++ b/memcheck/tests/freebsd/scalar.stderr.exp-freebsd130-x86 @@ -3213,10 +3213,10 @@ Warning: bad act handler address 0x........ in sigaction() --------------------------------------------------------- 417: SYS_sigreturn 1s 1m --------------------------------------------------------- -Syscall param sigreturn(ucp) contains uninitialised byte(s) +Syscall param sigreturn(scp) contains uninitialised byte(s) ... -Syscall param sigreturn(ucp) points to unaddressable byte(s) +Syscall param sigreturn(scp) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd diff --git a/memcheck/tests/freebsd/scalar.stderr.exp-x86 b/memcheck/tests/freebsd/scalar.stderr.exp-x86 index b949dbb7e8..e1f24ef803 100644 --- a/memcheck/tests/freebsd/scalar.stderr.exp-x86 +++ b/memcheck/tests/freebsd/scalar.stderr.exp-x86 @@ -3197,10 +3197,10 @@ Warning: bad act handler address 0x........ in sigaction() --------------------------------------------------------- 417: SYS_sigreturn 1s 1m --------------------------------------------------------- -Syscall param sigreturn(ucp) contains uninitialised byte(s) +Syscall param sigreturn(scp) contains uninitialised byte(s) ... -Syscall param sigreturn(ucp) points to unaddressable byte(s) +Syscall param sigreturn(scp) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd