]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
3 hours agoDarwin DRD: redirs for semaphore functions master
Paul Floyd [Sun, 14 Dec 2025 19:23:10 +0000 (20:23 +0100)] 
Darwin DRD: redirs for semaphore functions

Like 2802b31ae644301ee641dcae20d1f84373615d54 for Helgrind.
Use the DRD script supported_sem_init in Helgrind tests that use
semaphores, it's clearer than just using tests/os_test

4 hours agos390: Fix build failure
Florian Krohm [Sun, 14 Dec 2025 17:26:24 +0000 (17:26 +0000)] 
s390: Fix build failure

Followup to 778fe51a69eb099bc6cbfa616986310560a8b828.

5 hours agoDarwin helgrind: redirs for semaphore functions
Paul Floyd [Sun, 14 Dec 2025 17:21:19 +0000 (18:21 +0100)] 
Darwin helgrind: redirs for semaphore functions

The semaphore functions are not in the pthread library (similar to FreeBSD).
Change the redirs to use libsystem_kernel.dylib

Unfortunately this doesn't help much. Darwin has deprecated these functions
so the tests will compile (with a warning) but at runtime they all fail
with errors like ENOSYS and EBADF.

10 hours agoDarwin fdleaks: fix handling of recvmsg cmsg
Paul Floyd [Sun, 14 Dec 2025 12:31:18 +0000 (13:31 +0100)] 
Darwin fdleaks: fix handling of recvmsg cmsg

In the Darwin headers the macro __DARWIN_ALIGN32 is used for
the CMSG macros. We were using just ALIGN which looks like
it uses __DARWIN_ALIGN for 8 byte alignment. Using the
wrong alignment gate a wrong count of fds and check_cmsg_for_fds
was only calling ML_(record_fd_open_named) for one fd. The result
was fd errors when writing to a second fd that should have been
recorded.

14 hours agoDarwin regtest: update none ioctl_moans
Paul Floyd [Sun, 14 Dec 2025 09:05:04 +0000 (10:05 +0100)] 
Darwin regtest: update none ioctl_moans

This testcase needs IOCTL_REQUEST_BASE to be set to some bogus
value with the platform dependent "no direction" flag set.
That flag wasn't being set for Darwin and so the testcase was
failing.

25 hours agos390: Tweak a few helper functions.
Florian Krohm [Sat, 13 Dec 2025 22:12:23 +0000 (22:12 +0000)] 
s390: Tweak a few helper functions.

28 hours agotestsuite: Tidy. Remove empty .stdout.exp files
Florian Krohm [Sat, 13 Dec 2025 18:37:27 +0000 (18:37 +0000)] 
testsuite: Tidy. Remove empty .stdout.exp files

As per tests/vg_regtest:

 Expected stdout (filtered) is kept in <test>.stdout.exp* (can be more
 than one expected output).  It can be missing if it would be empty.

2 days agovex: change ISelEnv allocation
Florian Krohm [Fri, 12 Dec 2025 20:43:55 +0000 (20:43 +0000)] 
vex: change ISelEnv allocation

No need for dynamic memory allocation. Local variable will do just
fine. Saves roughly 136 bytes per IRSB on s390.

2 days agoDarwin suppression: another Helgrind suppression for getaddrinfo in 10.14
Paul Floyd [Fri, 12 Dec 2025 12:47:54 +0000 (13:47 +0100)] 
Darwin suppression: another Helgrind suppression for getaddrinfo in 10.14

3 days agos390x: Simplify single multiplications
Andreas Arnez [Fri, 5 Dec 2025 17:01:22 +0000 (18:01 +0100)] 
s390x: Simplify single multiplications

So far the single-multiplication instructions are implemented by taking
the low half of a widening multiply.  This pattern is then recognized by
the instruction selector, which combines it to a single multiplication
again.

This is unnecessarily complicated, since single-multiply operations can be
expressed directly by Iop_Mul32 and Iop_Mul64 instead.  So do this,
simplifying the code generation.

Also, since Iop_Mul32 and Iop_Mul64 haven't really been used before, the
instruction selector generates sub-optimal code for them.  Fix that.

3 days agoDarwin regtest: update a few expecteds
Paul Floyd [Thu, 11 Dec 2025 08:06:38 +0000 (09:06 +0100)] 
Darwin regtest: update a few expecteds

One predated correct redirection of the C++ library operator new
One has a few line number changes plus I removed an assert that is firing
(asserts firing in tests is never a good thing). And the last one is just
line number changes.

3 days agoDarwin libcproc: fix for VG_(read_millisecond_timer)
Paul Floyd [Thu, 11 Dec 2025 08:03:08 +0000 (09:03 +0100)] 
Darwin libcproc: fix for VG_(read_millisecond_timer)

This function had some peculiar workaround for how the result
was handled. That peculiarity seems to have gone away (some time
before Darwin 17). Now use 'normal' handling for the result for
Darwin 17+.

This was causing some DRD timed mutex testcases to fail.

Code copied from Louis Brunner.

3 days agoDarwin DRD: add a bodge for LLVM DWARF that our reader does not like
Paul Floyd [Thu, 11 Dec 2025 07:03:46 +0000 (08:03 +0100)] 
Darwin DRD: add a bodge for LLVM DWARF that our reader does not like

Longer term, need to understand Apple DWARF quirks and adapt to them
as necessary.

4 days agoDarwin warnings: add options to turn off warnings from system headers
Paul Floyd [Wed, 10 Dec 2025 12:35:49 +0000 (13:35 +0100)] 
Darwin warnings: add options to turn off warnings from system headers

Darwin 18 / clang 11 are quite noisy with nullability and expansion
to defined warnings in the system headers.

4 days agoRegtest: fix and x86 test unused function warning
Paul Floyd [Wed, 10 Dec 2025 12:16:54 +0000 (13:16 +0100)] 
Regtest: fix and x86 test unused function warning

4 days agoDarwin regtest: numerous bits of Darwin 18 cleanup
Paul Floyd [Wed, 10 Dec 2025 07:58:25 +0000 (08:58 +0100)] 
Darwin regtest: numerous bits of Darwin 18 cleanup

Add a few more ignore-fn options to the massif tests for the
extra leaks that are in Darwin 18.

Add some suppressions to a couple of memcheck tests that use
num-callers of 2 or 3. The shorter callsteack means some of the
many Darwin default suppressions don't match which was causing
these tests to fail.

Add more DRD suppressions for getaddrinfo. There seems to be a never
ending amount of conflicts in dyld.

5 days agoDarwin: add macOS 10.14 support
Paul Floyd [Tue, 9 Dec 2025 13:06:06 +0000 (14:06 +0100)] 
Darwin: add macOS 10.14 support

== 714 tests, 77 stderr failures, 5 stdout failures, 0 stderrB failures, 0 stdoutB failures, 33 post failures ==

x86 tests are all failing due to unsupported instructions
I need to go through the Massif tests to filter out all of the new macOS leaks.

Otherwise fairly similar to trhe results on macOS 10.13

5 days agoAdd SSE4.1 min/max instructions for x86 32 bit
Alexandra Hájková [Tue, 2 Dec 2025 16:06:58 +0000 (11:06 -0500)] 
Add SSE4.1 min/max instructions for x86 32 bit

Support pmaxsb, pminsb, pmaxuw, pminuw, pmaxud and pminud instructions
in guest_x86_toIR.c and host_x86_isel.c. Move test functions from
amd64/sse4-64.c to sse4-common.h and update none/tests/x86/sse4-x86.c
and sse4-x86.stdout.exp to test all min/max instructions.

BZ: https://bugs.kde.org/show_bug.cgi?id=512873

5 days agoDarwin: fix warning for hack to prevent crashes during stacktrace generation
Paul Floyd [Tue, 9 Dec 2025 08:47:45 +0000 (09:47 +0100)] 
Darwin: fix warning for hack to prevent crashes during stacktrace generation

5 days agoDarwin: remove support for old systems
Paul Floyd [Tue, 9 Dec 2025 08:41:01 +0000 (09:41 +0100)] 
Darwin: remove support for old systems

Valgrind no longer builds on Darwin 11 / Mac OS X 10.7. So remove support
for Darwin 9 to Darwin 11 inclusive.

5 days agoDarwin: add most of the missing bits for Darwin 18 support
Paul Floyd [Tue, 9 Dec 2025 07:58:46 +0000 (08:58 +0100)] 
Darwin: add most of the missing bits for Darwin 18 support

Code merged from Louis Brunner. Also add a but of doc about the
oldest OSX that we support. Unfortunately I don't know which version
that is.

5 days agoDarwin suppressions: merge old suppression files to darwin-legacy.supp
Paul Floyd [Tue, 9 Dec 2025 06:33:49 +0000 (07:33 +0100)] 
Darwin suppressions: merge old suppression files to darwin-legacy.supp

Merge files for Darwin 10 to 16 into a legacy file.  Rename the Darwin 17
file as just darwin.supp. I'll add suppressions to that file, at least for
10.14 and 10.15. When I get to Darwin 20 and the dyld shared cache
we'll see, that might need a new set of suppression files.

Remove freebsd-helgrind-dbgrtld.supp. I thought that it would be useful
but it wasn't. When I merged the Darwin suppression files I wrote a little
duplication detection tool (only for exact duplicates). This found one
duplicate in solaris12.supp that I've removed.

6 days agoDarwin suppressions: add suppressions for shared_timed_mutex testcase
Paul Floyd [Mon, 8 Dec 2025 19:35:17 +0000 (20:35 +0100)] 
Darwin suppressions: add suppressions for shared_timed_mutex testcase

The test still fails with 12 errors (should be 0). There are a load
of errors that I've never seen before, Like

Thread #2: Bug in libpthread: write lock granted on mutex/rwlock which is currently wr-held by a different thread

and

Thread #1 unlocked lock at 0x100005228 currently held by thread #3

There are some serious problems there.

6 days agoDarwin suppressions: split out a new Helgrind suppression file
Paul Floyd [Mon, 8 Dec 2025 19:26:21 +0000 (20:26 +0100)] 
Darwin suppressions: split out a new Helgrind suppression file

Rename darwin10-drd.supp to darwin-drd.supp, this will be the
basis for all Darwin suppressions.

6 days agoWrap new lsm_get_self_attr and lsm_set_self_attr syscalls
Martin Cermak [Mon, 8 Dec 2025 12:20:25 +0000 (13:20 +0100)] 
Wrap new lsm_get_self_attr and lsm_set_self_attr syscalls

Create a system call lsm_get_self_attr() to provide the security
module maintained attributes of the current process.
Create a system call lsm_set_self_attr() to set a security
module maintained attribute of the current process.
Historically these attributes have been exposed to user space via
entries in procfs under /proc/self/attr.

Declare lsm_get_self_attr and lsm_set_self_attr wrappers in
priv_syswrap-linux.h and hook it for {amd64,arm,arm64,mips64,\
ppc32,ppc64,riscv64,s390x,x86}-linux.

https://bugs.kde.org/show_bug.cgi?id=510563

6 days agoDarwin suppressions: start cleaning up the suppression files
Paul Floyd [Mon, 8 Dec 2025 07:24:46 +0000 (08:24 +0100)] 
Darwin suppressions: start cleaning up the suppression files

This commit moves DRD suppressions from darwin17.supp to darwin10-drd.supp.
It also removes some pthread lib suppressions. There's an obj suppression
at the top level for libsystem_pthread.dylib that should cover all that.

I want to avoid having 20+ Darwin suppression files (and rising with
every new version). I'd like to have something a bit more like FreeBSD,
with one suppression file for memcheck, one for DRD and one for Helgrind.
That might be a bit optimistic (especially when DSC support lands). So
what I'll do to begin with is to merge all of the Darwin <= 16 memcheck
files into one darwin-legacy.supp, split out a new darwin-helgrind.supp
file and rename darwin10-drd.supp to just darwin-drd.supp. That leaves
darwin9-drd.supp which I'll either rename or merge.

7 days agoDarwin: make fixup_macho_loadcmds.c less version dependent
Paul Floyd [Sun, 7 Dec 2025 21:11:19 +0000 (22:11 +0100)] 
Darwin: make fixup_macho_loadcmds.c less version dependent

Remove a load of DARWIN_VERS checks. It's a pointless maintenance
burden. Add suppport for SDK >= 10.4.6. First step to adding
macOS 10.14 Mojave support.

7 days agoFreeBSD and Darwin: clean up fake sigreturn syscall numbers
Paul Floyd [Sun, 7 Dec 2025 20:59:40 +0000 (21:59 +0100)] 
FreeBSD and Darwin: clean up fake sigreturn syscall numbers

Firstly make them a bit more similar. Secondly, switch Darwin
from using __NR_MAXSYSCALL which changes with every Darwin version
to using 1000 like FreeBSD.

Change NEWS for macOS 10.13, it has now progressed beyond
'preliminary'.

7 days agoIf valgrind crashes (e.g. on SEGV) and debug log > 0, report aspacemgr status
Philippe Waroquiers [Sun, 7 Dec 2025 20:14:20 +0000 (21:14 +0100)] 
If valgrind crashes (e.g. on SEGV) and debug log > 0, report aspacemgr status

Might help to see what goes wrong in bug 511717 gdbdserver read memory SIGSEGV

7 days agoDarwin: fix debug only build
Paul Floyd [Sun, 7 Dec 2025 12:30:19 +0000 (13:30 +0100)] 
Darwin: fix debug only build

Was filing to link. Optimised builds were smart enough to optimise away
a call to a function that I haven't merged into the repo yet.

7 days agoDarwin syscall: initial wrapper for kernelrpc_mach_vm_purgable_control_trap
Paul Floyd [Sun, 7 Dec 2025 10:48:51 +0000 (11:48 +0100)] 
Darwin syscall: initial wrapper for kernelrpc_mach_vm_purgable_control_trap

Need to add verification of regs and read/write mem.

7 days agoDarwin syscall: initial wrapper for mach_voucher_extract_attr_recipe
Paul Floyd [Sun, 7 Dec 2025 08:52:04 +0000 (09:52 +0100)] 
Darwin syscall: initial wrapper for mach_voucher_extract_attr_recipe

It doesn't do any checking yet. However, with this change running
TextEditor with --tool=none gets as far as drawing a white box on
the screen. Then it fails because there is a missing mach trap handler
for

/* 11 */ MACH_TRAP(_kernelrpc_mach_vm_purgable_control_trap, 4, 5, munge_wlww),

7 days agoDarwin syswrap: remove a couple of duplicate table entries
Paul Floyd [Sun, 7 Dec 2025 08:43:39 +0000 (09:43 +0100)] 
Darwin syswrap: remove a couple of duplicate table entries

Probably harmless but it was generating a couple of compiler warnings

7 days agoFreeBSD regtest: minor typo in test error message
Paul Floyd [Sun, 7 Dec 2025 08:36:20 +0000 (09:36 +0100)] 
FreeBSD regtest: minor typo in test error message

7 days agoDarwin mach_msg_host: move assign_port_name to post
Paul Floyd [Sun, 7 Dec 2025 07:50:32 +0000 (08:50 +0100)] 
Darwin mach_msg_host: move assign_port_name to post

There's a GrP comment saying that assign_port_name should only be called on success.
And indeed when it is called in the PRE and it can't find the info for the port
then the code will assert.

7 days agoDarwin stacktraces: add a hack to prevent segfault when dereferencing bp
Paul Floyd [Sun, 7 Dec 2025 06:54:23 +0000 (07:54 +0100)] 
Darwin stacktraces: add a hack to prevent segfault when dereferencing bp

Can now turn a couple more helgrind tests back on.
Need to get to the bottom of the bp dereferencing issue. There is a test
already so it us supposed to be safe.

8 days agoDarwin client stack: add an assert to check the stringtable doesn't get overwritten
Paul Floyd [Sat, 6 Dec 2025 10:09:19 +0000 (11:09 +0100)] 
Darwin client stack: add an assert to check the stringtable doesn't get overwritten

As per the previous change for FreeBSD.

8 days agoFreeBSD client stack: add an assert to check the stringtable doesn't get overwritten
Paul Floyd [Sat, 6 Dec 2025 09:50:38 +0000 (10:50 +0100)] 
FreeBSD client stack: add an assert to check the stringtable doesn't get overwritten

There's already an assert that the stringsize calculated matches the
stringsize writte. This adds a check that the pointer table area
does not overwrite the stringtable (that is, that the NULL pointer after the
last auxv entry pointer does not overwrite the first string [either the
interpreter or argv[0])

8 days agoDarwin configure: updates to SDK checking and not yet suppoorted Darwin versions
Paul Floyd [Sat, 6 Dec 2025 07:19:36 +0000 (08:19 +0100)] 
Darwin configure: updates to SDK checking and not yet suppoorted Darwin versions

Merged from Louis Brunner

I was just adding support for OSX 10.13 but that is just making more
work (avoiding parts of merges that will probably need to be added back later).

This should allow me to merge code that uses macros for OSX/macOS versions
which don't yet have support in the repo.

9 days agoDarwin: also clean up client stack creation
Paul Floyd [Fri, 5 Dec 2025 20:59:34 +0000 (21:59 +0100)] 
Darwin: also clean up client stack creation

Make stringbase and strtab be based off clstack_end + 1
rather than clstack_end. clstack_end is the address of the
last byte of the stack, not one past the end of the stack.
That means that it is not word aligned. Adding 1 makes
the calculation word aligned.

Depending on the length of the string table with rounding
it could happen that the executable_path pointer would
overwrite the start of argv[0] in the string table.

I think that that there are supposed to be 0-16 bytes between
the end of the pointers and the string table (or is that
ELF?).

9 days agoFreeBSD: a bit of cleaning of client stack creation
Paul Floyd [Fri, 5 Dec 2025 20:44:56 +0000 (21:44 +0100)] 
FreeBSD: a bit of cleaning of client stack creation

Remove some commented out rounding
Make stringbase point to a word boundary, not one before

9 days agoDarwin: no need to turn off alignment assert in leak check
Paul Floyd [Fri, 5 Dec 2025 12:47:19 +0000 (13:47 +0100)] 
Darwin: no need to turn off alignment assert in leak check

Mixed up 2 files with previous commit. This also contains
a missing proto and the previous commit fixes issues with badly formed
segments. Needs more investigation.

9 days agoDarwin: add a couple of missing function prototypes
Paul Floyd [Fri, 5 Dec 2025 12:44:41 +0000 (13:44 +0100)] 
Darwin: add a couple of missing function prototypes

10 days agoarm: Remove global arm_hwcaps and one FIXME.
Florian Krohm [Thu, 4 Dec 2025 20:38:24 +0000 (20:38 +0000)] 
arm: Remove global arm_hwcaps and one FIXME.

Followup to cd9d7d0d2edeef5ef37582c6d6fa55ca3c3bcccd

10 days agoAdd ARG4 checks for quotactl and quotactl_fd syswraps
Martin Cermak [Thu, 4 Dec 2025 13:00:59 +0000 (14:00 +0100)] 
Add ARG4 checks for quotactl and quotactl_fd syswraps

ARG4 can point to different things of varion sizes based on the
cmd arg.  Handle all the possible options and provide missing
checks.

https://bugs.kde.org/show_bug.cgi?id=509634

11 days agoChange the data type of libvex_Backend::emit.
Florian Krohm [Wed, 3 Dec 2025 22:26:57 +0000 (22:26 +0000)] 
Change the data type of libvex_Backend::emit.

Both the s390 and arm insn emitters need to know the host's hardware
capabilities. Today, these are provided by means of global variables
s390_host_hwcaps and arm_hwcaps. To eliminate that kludge the emit
function is changed. Instead of passing VexEndness we now pass a pointer
to VexArchInfo which provides both the endianess and hardware capabilities.

Those global variables will be removed in a followup patch.

11 days agos390: Remove unused function parameter
Florian Krohm [Wed, 3 Dec 2025 17:15:42 +0000 (17:15 +0000)] 
s390: Remove unused function parameter

13 days agoDarwin regtest: DRD filters and more suppressions
Paul Floyd [Mon, 1 Dec 2025 21:26:10 +0000 (22:26 +0100)] 
Darwin regtest: DRD filters and more suppressions

13 days agoDarwin: update readmacho code
Paul Floyd [Mon, 1 Dec 2025 08:04:46 +0000 (09:04 +0100)] 
Darwin: update readmacho code

Code from Louis Brunner

13 days agoLinux Helgrind: add a suppression for _dl_allocate_tls_init
Paul Floyd [Mon, 1 Dec 2025 07:18:56 +0000 (08:18 +0100)] 
Linux Helgrind: add a suppression for _dl_allocate_tls_init

Seen on Fedora 43 amd64

13 days agoLinux DRD suppression: add an entry for __is_decorate_maps_enabled
Paul Floyd [Mon, 1 Dec 2025 07:12:30 +0000 (08:12 +0100)] 
Linux DRD suppression: add an entry for __is_decorate_maps_enabled

Seen on Fedora 43

2 weeks agoNEWS / README.s390 update
Florian Krohm [Sun, 30 Nov 2025 21:52:32 +0000 (21:52 +0000)] 
NEWS / README.s390 update

BZ 509562 closed

2 weeks agoDarwin: update x86 syswrap code
Paul Floyd [Sun, 30 Nov 2025 17:21:56 +0000 (18:21 +0100)] 
Darwin: update x86 syswrap code

Code from Louis Brunner.

2 weeks agoDarwin: update syscalls
Paul Floyd [Sun, 30 Nov 2025 16:27:17 +0000 (17:27 +0100)] 
Darwin: update syscalls

Code merged from Louis Brunner, mainly up to OSX 10.13

2 weeks agoAdd sse4-common.h to none/tests/Makefile.am noinst_HEADERS
Mark Wielaard [Sun, 30 Nov 2025 14:58:38 +0000 (15:58 +0100)] 
Add sse4-common.h to none/tests/Makefile.am noinst_HEADERS

Fixes: 5e584556a9b9 ("Add none/tests/sse4-common.h header")
2 weeks agoDarwin: add code for text_slide
Paul Floyd [Sun, 30 Nov 2025 14:51:20 +0000 (15:51 +0100)] 
Darwin: add code for text_slide

Code from Louis Brunner

2 weeks agos390: Remove S390_NUM_FACILITY_DW; fix testcase stfle.c (BZ 509562)
Florian Krohm [Sun, 30 Nov 2025 08:33:41 +0000 (08:33 +0000)] 
s390: Remove S390_NUM_FACILITY_DW; fix testcase stfle.c (BZ 509562)

Now that the stfle insn is available we can use it to tell uas how
many double words are needed to store all facility bits. Hence,
S390_NUM_FACILITY_DW can go.

none/tests/s390x/stfle.c: The bug is here

  if (bit_to_test < 64)
    return (hoststfle[0] & (1ULL << (63 - bit_to_test)));
  else if (bit_to_test < 128)
    return (hoststfle[1] & (1ULL << (63 - bit_to_test)));
  else if (bit_to_test < 192)
    return (hoststfle[2] & (1ULL << (63 - bit_to_test)));

when bit_to_test >= 64.  Now fixed and test added.

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agodebuginfo: small code simplification
Paul Floyd [Sat, 29 Nov 2025 20:52:00 +0000 (21:52 +0100)] 
debuginfo: small code simplification

Merge two identical cases (and there may be a third if and when
Darwin arm64 makes it here).

2 weeks agoDarwin: updates to macho loading and turn off hanging regtests
Paul Floyd [Sat, 29 Nov 2025 20:14:44 +0000 (21:14 +0100)] 
Darwin: updates to macho loading and turn off hanging regtests

Code merges from Louis Brunner.
Turn off 7 tests that are hanging.
Updates to filtering.

2 weeks agoDarwin: update signal tramp, helgrind and drd suppressions
Paul Floyd [Fri, 28 Nov 2025 21:49:25 +0000 (22:49 +0100)] 
Darwin: update signal tramp, helgrind and drd suppressions

Change a couple of testcase asserts to match Darwin quirks.
Signal tramp from Louis Brunner

2 weeks agoDarwin .gitignore: add lines for cachegrind callgrind and lackey dSYM directories
Paul Floyd [Fri, 28 Nov 2025 12:39:26 +0000 (13:39 +0100)] 
Darwin .gitignore: add lines for cachegrind callgrind and lackey dSYM directories

2 weeks agoDarwin DRD and Helgrind: clean up suppressions
Paul Floyd [Fri, 28 Nov 2025 12:36:43 +0000 (13:36 +0100)] 
Darwin DRD and Helgrind: clean up suppressions

Also fix one DRD testcase where a pthread function returns a
different error code.

2 weeks agoDarwin Helgrind/DRD: change pthread lib, more filters and suppressions
Paul Floyd [Fri, 28 Nov 2025 06:44:51 +0000 (07:44 +0100)] 
Darwin Helgrind/DRD: change pthread lib, more filters and suppressions

And turn off one test that is hanging. More to come.

2 weeks agos390: Tidy and a bit of constification
Florian Krohm [Thu, 27 Nov 2025 21:21:59 +0000 (21:21 +0000)] 
s390: Tidy and a bit of constification

2 weeks agos390: Renumber hardware capabilities (BZ 509562)
Florian Krohm [Thu, 27 Nov 2025 21:18:40 +0000 (21:18 +0000)] 
s390: Renumber hardware capabilities (BZ 509562)

Plenty of room for new ones again.

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agoDarwin massif: more ingore functions in regtest, x86 new uses unsigned long
Paul Floyd [Thu, 27 Nov 2025 19:12:26 +0000 (20:12 +0100)] 
Darwin massif: more ingore functions in regtest, x86 new uses unsigned long

2 weeks agoDarwin: many fixes for OSX 10.13
Paul Floyd [Thu, 27 Nov 2025 06:22:18 +0000 (07:22 +0100)] 
Darwin: many fixes for OSX 10.13

Most of these changes are from Louis Brunner's GitHub repo.
The most imortant changes are to the memory space and to the code
related to getting the host filename during startup. This means
that when Valgrind crashes or hits an assert we now get a legible
host stacktrrace.

This also fixes none/tests/darwin/bug228343

2 weeks agoAdd missing massif filter file
Paul Floyd [Thu, 27 Nov 2025 12:26:20 +0000 (13:26 +0100)] 
Add missing massif filter file

2 weeks agoMassif regtest: filter ignore functions, part 1
Paul Floyd [Thu, 27 Nov 2025 12:14:43 +0000 (13:14 +0100)] 
Massif regtest: filter ignore functions, part 1

This is mainly for Darwin which has numerous leaks that
need to be ignored. This filter removes all --ignore-fn options
from the "out" expecteds. This should allow adding endless
functions to ignore in the vgtest files without having to
also update the out.exp files as well.

Part 2 will be for the verbose output which adds ignore files
to the stderr.exp references.

2 weeks agoProvide missing syswraps for file_getattr and file_setattr
Martin Cermak [Thu, 27 Nov 2025 08:25:07 +0000 (09:25 +0100)] 
Provide missing syswraps for file_getattr and file_setattr

The syscalls take fd and path. If path is absolute, fd is not
used. If path is empty, fd can be AT_FDCWD or any valid fd which
will be used to get/set attributes on.

https://bugs.kde.org/show_bug.cgi?id=510169

2 weeks agoDarwin regtest: add filters for memcheck x86 sh-mem-vec128-plo*
Paul Floyd [Wed, 26 Nov 2025 20:37:10 +0000 (21:37 +0100)] 
Darwin regtest: add filters for memcheck x86 sh-mem-vec128-plo*

Need to bash the output to make it look like posix_memalign.
Also add -q because Darwin libc is incontinent.

2 weeks agoDarwin new/delete wrappers: fix on x86
Paul Floyd [Wed, 26 Nov 2025 20:22:51 +0000 (21:22 +0100)] 
Darwin new/delete wrappers: fix on x86

Untested code is always full of surprises.

Darwin x86 doesn't use size_t for the size (where 32bit
size_t is unsigned int and 64but size_t is unsigned long).
Instead it uses unsigned long on both platforms.

That changes the mangled name. It's all 'm' for unsigned long
rather than 32bit 'j' for unsigned short and 64bit 'm'
for unsigned long.

2 weeks agoA few more syscall comments and doc tweaks
Paul Floyd [Wed, 26 Nov 2025 19:27:43 +0000 (20:27 +0100)] 
A few more syscall comments and doc tweaks

2 weeks agoDarwin: fix x86 build and client syscall
Paul Floyd [Wed, 26 Nov 2025 19:25:10 +0000 (20:25 +0100)] 
Darwin: fix x86 build and client syscall

2 weeks agoAdd pmaxsd and pminsd support for x86 32 bit
Alexandra Hájková [Tue, 11 Nov 2025 12:34:10 +0000 (07:34 -0500)] 
Add pmaxsd and pminsd support for x86 32 bit

Support pmaxsd and pminsd instructions in guest_x86_toIR.c and host_x86_isel.c
and modify the none/tests/x86/sse4-x86.stdout.exp to match pmaxsd and
pminsd support.

2 weeks agosse4-common.h: make changes to make test_PMAXSD usable for 32bit
Alexandra Hájková [Tue, 11 Nov 2025 09:17:36 +0000 (04:17 -0500)] 
sse4-common.h: make changes to make test_PMAXSD usable for 32bit

Modify DO_imm_r_r macro called by test_PMAXSD to use xmm7 register
when testing on 32bit.

2 weeks agoAdd none/tests/sse4-common.h header
Alexandra Hájková [Tue, 4 Nov 2025 18:59:10 +0000 (13:59 -0500)] 
Add none/tests/sse4-common.h header

Refactor none/tests/amd64/sse4-64.c and none/tests/x86/sse4-x86.c
to use a common none/tests/sse4-common.h header. This eliminates
code redundancies and makes it easier to add new SSE4 tests for both
architectures more easily. The shared header contains common helper functions,
type definitions, and test macros previously duplicated in both files.

2 weeks agoDarwin ,gitignore: add a wildcard for dSYM direatories in none
Paul Floyd [Wed, 26 Nov 2025 17:53:49 +0000 (18:53 +0100)] 
Darwin ,gitignore: add a wildcard for dSYM direatories in none

2 weeks agos390x_features.c cleanup
Florian Krohm [Wed, 26 Nov 2025 16:50:42 +0000 (16:50 +0000)] 
s390x_features.c cleanup

Remove detection of unneeded facilities: zarch, n3, exrl, mi3
Rename s390x-vx2 --> s390x-vxe2 to be consistent with VEX_HWCAPS_S390X_VXE2
Change vec2_float.vgtest accordingly

2 weeks agoFreeBSD regtest: turn off a few gdbserver tests on systems with sysctl debug.ptrace_a...
Paul Floyd [Tue, 25 Nov 2025 20:04:17 +0000 (21:04 +0100)] 
FreeBSD regtest: turn off a few gdbserver tests on systems with sysctl debug.ptrace_attach_transparent

FreeBSD 15 (out soon) and 16 (the dev branch) have changed the behaviour
of ptrace. When vgdb uses ptrace to get Valgrind to poll gdbserver
to get out of blocking syscalls the client may return a bogus result
from the syscall.

Setting the syscall to 0 turns off this change and all 3 affected testcases
should return to normal behaviour. However, setting the syscall needs root
privileges. So I've added a test to see if the syscall is present and set
to 1. If it is the prereq is not satisfied.

2 weeks agoFreeBSD startup: do not skip exename if it is not present
Paul Floyd [Tue, 25 Nov 2025 20:03:35 +0000 (21:03 +0100)] 
FreeBSD startup: do not skip exename if it is not present

Don't remember why this code was there. Allowing no exename
is a bad idea (argv[0] will be NULL). I don't think there is
a need any more for this permissiveness.

2 weeks agoMemory allegedly uninitialized after ioctl(PROCMAP_QUERY)
Martin Cermak [Tue, 25 Nov 2025 14:07:09 +0000 (15:07 +0100)] 
Memory allegedly uninitialized after ioctl(PROCMAP_QUERY)

Fix ioctl(fd, PROCMAP_QUERY, ...) so that valgrind correctly considers
memory referenced by vma_name_size and vma_name_addr members of struct
procmap_query as initialized by ioctl().

Extend ioctl syscall wrappers with needed PRE_MEM_WRITE() and
mainly POST_MEM_WRITE().  Add a testcase.

https://bugs.kde.org/show_bug.cgi?id=508328

2 weeks agos390: PFPO facility related cleanups (BZ 509562)
Florian Krohm [Tue, 25 Nov 2025 13:50:37 +0000 (13:50 +0000)] 
s390: PFPO facility related cleanups  (BZ 509562)

The PFPO facility is always present on the supported machines.
- Remove VEX_HWCAPS_S390X_PFPO, s390_host_has_pfpo and EmFail_S390X_pfpo
- Update tests/s390x_features.c and none/tests/s390x/pfpo
- Update memcheck/tests/vbit-test

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agos390: load/store-on-condition / high-word facility related cleanups (BZ 509562)
Florian Krohm [Tue, 25 Nov 2025 13:23:52 +0000 (13:23 +0000)] 
s390: load/store-on-condition / high-word facility related cleanups  (BZ 509562)

The load/store-on-condition / high-word facility is always present on the
supported machines.
- Remove VEX_HWCAPS_S390X_LSC and s390_host_has_lsc
- Update tests/s390x_features.c and none/tests/s390x/high-word

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agos390: floating-point-support-enhancement facility related cleanups (BZ 509562)
Florian Krohm [Tue, 25 Nov 2025 13:03:37 +0000 (13:03 +0000)] 
s390: floating-point-support-enhancement facility related cleanups  (BZ 509562)

The floating-point-support-enhancement facility is always present on the
supported machines.
- Remove VEX_HWCAPS_S390X_FGX and s390_host_has_fgx
- Remove wrapper functions: s390_emit_LGDRw, s390_emit_LDGRw

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agos390: general-instructions-extension facility related cleanups (BZ 509562)
Florian Krohm [Tue, 25 Nov 2025 09:14:11 +0000 (09:14 +0000)] 
s390: general-instructions-extension facility related cleanups  (BZ 509562)

The general-instructions-extension facility is always present on the
supported machines.
- Remove VEX_HWCAPS_S390X_GIE and s390_host_has_gie
- Remove wrapper functions: s390_emit_MFYw, s390_emit_MHYw, s390_emit_MSFIw
- Update tests/s390x_features.c

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agoBug 512571 - regtest problems with darwin dsymuti
Paul Floyd [Tue, 25 Nov 2025 07:20:06 +0000 (08:20 +0100)] 
Bug 512571 - regtest problems with darwin dsymuti

There was alrwady a stderr filter for dsymutil, but only for DRD.
So I moved that to tests/filter_stderr_basic.in

I added single quotes around $dir in tests/vg_regtest.in for
arch_test and os_test. That now prevents directory names containing
spaces from being seen as more than one argument.

2 weeks agos390: extended-immediate facility related cleanups (BZ 509562)
Florian Krohm [Mon, 24 Nov 2025 23:21:29 +0000 (23:21 +0000)] 
s390: extended-immediate facility related cleanups  (BZ 509562)

The extended-immediate facility is always present on the supported
machines.
- Remove VEX_HWCAPS_S390X_EIMM and s390_host_has_eimm
- Remove unused functions: s390_emit_LLILH, s390_emit_IILL, s390_emit_IILH,
  s390_emit_IIHL, s390_emit_IIHH
- Remove wrapper functions: s390_emit_NILFw, s390_emit_OILFw, s390_emit_XILFw,
  s390_emit_LBRw, s390_emit_LGBRw, s390_emit_LHRw, s390_emit_LGHRw,
  s390_emit_LGFIw, s390_emit_LLCRw, s390_emit_LLGCRw, s390_emit_LLHRw,
  s390_emit_LLGHRw, s390_emit_LLCw, s390_emit_LLHw, s390_emit_LLILFw,
  s390_emit_AFIw, s390_emit_SLFIw, s390_emit_SLGFIw, s390_emit_LTw,
  s390_emit_LTGw, s390_emit_CFIw, s390_emit_CLFIw
- Update tests/s390x_features.c

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agoFix a typo.
Florian Krohm [Mon, 24 Nov 2025 22:31:44 +0000 (22:31 +0000)] 
Fix a typo.

2 weeks agos390: ETF2/ETF3-enhancement facilities related cleanups (BZ 509562)
Florian Krohm [Mon, 24 Nov 2025 18:39:39 +0000 (18:39 +0000)] 
s390: ETF2/ETF3-enhancement facilities related cleanups  (BZ 509562)

The ETF2/ETF3-enhancement facilities are always present on
the supported machines.
- Remove VEX_HWCAPS_S390X_ETF2 and s390_host_has_etf2
- Remove VEX_HWCAPS_S390X_ETF3 and s390_host_has_etf3
- Update tests/s390x_features.c

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agos390: message-security-assist facility related cleanups (BZ 509562)
Florian Krohm [Mon, 24 Nov 2025 18:16:22 +0000 (18:16 +0000)] 
s390: message-security-assist facility related cleanups  (BZ 509562)

The message-security-assist facility is always present on
the supported machines.
- Remove VEX_HWCAPS_S390X_MSA and s390_host_has_msa
- Remove EmFail_S390X_msa

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agos390: MSA4 facility related cleanups (BZ 509562)
Florian Krohm [Mon, 24 Nov 2025 17:56:44 +0000 (17:56 +0000)] 
s390: MSA4 facility related cleanups  (BZ 509562)

The message-security-assist-extension-4 facility is always present on
the supported machines.
- Remove VEX_HWCAPS_S390X_MSA4 and s390_host_has_msa4
- Remove EmFail_S390X_msa4

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agos390: decimal-floating-point facility related cleanups (BZ 509562)
Florian Krohm [Mon, 24 Nov 2025 16:40:23 +0000 (16:40 +0000)] 
s390: decimal-floating-point facility related cleanups  (BZ 509562)

The decimal-floating-point facility is always present on the supported
machines.
- Remove VEX_HWCAPS_S390X_DFP and s390_host_has_dfp
- Remove EmFail_S390X_DFP_insn
- Update tests/s390x_features.c

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

2 weeks agoDarwin regtest: make a variant of none require-text-symbol-2
Paul Floyd [Mon, 24 Nov 2025 11:55:15 +0000 (12:55 +0100)] 
Darwin regtest: make a variant of none require-text-symbol-2

This test looks for a bogus symbol in libc.so. But Darwin
has no libc.so, so make this variant that looks in libsystem_c.dylib.
The -2 variant now has a !os_test darwin prereq and the new -3 variant
has an os_test darwin prereq.

3 weeks agos390: floating-point-extension facility related cleanups (BZ 509562)
Florian Krohm [Sun, 23 Nov 2025 22:51:53 +0000 (22:51 +0000)] 
s390: floating-point-extension facility related cleanups  (BZ 509562)

The floating-point-extension facility is always present on the supported
machines.
- Remove s390_host_has_fpext and VEX_HWCAPS_S390X_FPEXT
- Remove EmWarn_S390X_fpext_rounding and EmFail_S390X_fpext
- Remove testscases none/tests/s390x/fpext_fail and fpext_warn
- Update tests/s390x_features.c and memcheck/tests/vbit-test

Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562

3 weeks agoFreeBSD wrapper: typo in aligned_alloc redir
Paul Floyd [Sun, 23 Nov 2025 20:33:08 +0000 (21:33 +0100)] 
FreeBSD wrapper: typo in aligned_alloc redir

3 weeks agoFreeBSD regtest: add checks for required kernel modules and sysctl
Paul Floyd [Sun, 23 Nov 2025 20:07:12 +0000 (21:07 +0100)] 
FreeBSD regtest: add checks for required kernel modules and sysctl

memcheck/tests/descr_belowsp requires a sysctl
memcheck/tests/freebsd/scalar requires a kenrnel module

neither of trhe above are cleard/loaded by default.

3 weeks agoEnsure none/tests/linux/mremap[456].c remove the shared memory
Philippe Waroquiers [Sun, 23 Nov 2025 15:49:01 +0000 (16:49 +0100)] 
Ensure none/tests/linux/mremap[456].c remove the shared memory

As otherwise, each execution of a test leaves some shared memory lingering.

Verified by doing:
   ipcs -m | wc
   mremap4
   ipcs -m | wc

and that the nr does not increase after the fix.

3 weeks agomalloc-trace: format with %lu not %zu (SizeT is not size_t).
Paul Floyd [Sat, 22 Nov 2025 18:51:14 +0000 (19:51 +0100)] 
malloc-trace: format with %lu not %zu (SizeT is not size_t).

3 weeks agoDarwin syscalls: correctly set EIP/RIP in ML_(fixup_guest_state_to_restart_syscall)
Paul Floyd [Fri, 21 Nov 2025 21:02:41 +0000 (22:02 +0100)] 
Darwin syscalls: correctly set EIP/RIP in ML_(fixup_guest_state_to_restart_syscall)

The code was using arch->vex.guest_IP_AT_SYSCALL but that got cleaned out on amd64
a while ago. Use EIP/RIP - 2 instead, like other x86 and amd64 platforms.

This fixes 5 more memcheck regression tests.