]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
4 months agos390: Remove s390_format_RR and friends.
Florian Krohm [Thu, 15 Jan 2026 09:19:10 +0000 (09:19 +0000)] 
s390: Remove s390_format_RR and friends.

This patch removes the functions: s390_format_RR, s390_format_RR_RR
and s390_format_RR_FF.

First, because of the disassembly changes in 370531396ad there is no
longer a need to specialise s390_format_RR because the register class
of its operands is now irrelevant. Hence s390_format_RR_RR and
s390_format_RR_FF can go.
Secondly, s390_irgen_RR only calls the function pointer being passed in.
So we can call that function directly and s390_irgen_RR can go as well.

The same reasoning also applies to other opcode formats. Patches will
follow soon. Having several installments gives a chance to actually
proofread them.

4 months agoBug 514613 - Unclosed leak_summary/still_reachable tag in xml output
Paul Floyd [Thu, 15 Jan 2026 07:44:52 +0000 (08:44 +0100)] 
Bug 514613 - Unclosed leak_summary/still_reachable tag in xml output

4 months agoFreeBSD regtest: update expected for access test
Paul Floyd [Thu, 15 Jan 2026 06:30:20 +0000 (07:30 +0100)] 
FreeBSD regtest: update expected for access test

For the previously incorrectly unchecked 4th argument that I added
yesterday.

4 months agoFreeBSD syscall: faccessat has 4 arguments, not 3
Paul Floyd [Wed, 14 Jan 2026 19:38:12 +0000 (20:38 +0100)] 
FreeBSD syscall: faccessat has 4 arguments, not 3

4 months agoFreeBSD syswrap: utimensat timespec can be NULL
Paul Floyd [Wed, 14 Jan 2026 08:00:07 +0000 (09:00 +0100)] 
FreeBSD syswrap: utimensat timespec can be NULL

4 months agomips: Add missing syscalls for mips32 and mips64
Petar Jovanovic [Tue, 13 Jan 2026 16:20:36 +0000 (16:20 +0000)] 
mips: Add missing syscalls for mips32 and mips64

Adding several syscall defines for mips32 and mips64.
This fixes a build break for mips variants.

4 months agoClarify a comment.
Florian Krohm [Mon, 12 Jan 2026 14:12:09 +0000 (14:12 +0000)] 
Clarify a comment.

4 months agoMakefile.am: Remove perl prefix from vg_perf and vg_regtest
Florian Krohm [Sun, 11 Jan 2026 21:52:10 +0000 (21:52 +0000)] 
Makefile.am: Remove perl prefix from vg_perf and vg_regtest

Those scripts are executable. Cf. b5b7e0238af

4 months agovg_regtest: Miscellaneous tweaks
Florian Krohm [Sun, 11 Jan 2026 17:54:59 +0000 (17:54 +0000)] 
vg_regtest: Miscellaneous tweaks

Drop the requirement that there must be at least one .stderr.exp
file. That way we can eliminate some 440 empty stderr.exp files and
a few stderrB.exp files.

Drop the requirement that there must be a "filter_stderr" script.
If there is nothing to filter (e.g. iropt-test) a filter script is
not meaningful. In that is so desired, specify an empty stderr_filter
and stderrB_filter in the .vgtest file.

4 months agoCode cleaning: use #elif in coregrind/m_trampoline.S
Paul Floyd [Sun, 11 Jan 2026 10:39:55 +0000 (11:39 +0100)] 
Code cleaning: use #elif in coregrind/m_trampoline.S

The code was using #else #if with an ever growing list of
Chained #elifs with just one #endif is nicer.

4 months agoCode cleaning: remove duplicate conditional blocks
Paul Floyd [Sat, 10 Jan 2026 15:04:59 +0000 (16:04 +0100)] 
Code cleaning: remove duplicate conditional blocks

vg_replace_strmem.c contained stpcpy twice for VGO_freebsd

4 months agoregtest: undo changes to str_tester as a workaround for darwin checked functions
Paul Floyd [Sat, 10 Jan 2026 14:53:43 +0000 (15:53 +0100)] 
regtest: undo changes to str_tester as a workaround for darwin checked functions

I had added parens to force the use of the function rarther than a
macro expanding to the _chk version. The _chk functions are now wrapped
so no longer need to keep the workaround.

4 months agoregtest: clean a bit of unused code
Paul Floyd [Fri, 9 Jan 2026 18:48:42 +0000 (19:48 +0100)] 
regtest: clean a bit of unused code

4 months agoFix typo
Paul Floyd [Fri, 9 Jan 2026 18:34:18 +0000 (19:34 +0100)] 
Fix typo

4 months agoDisable linux madvise MADV_GUARD_INSTALL
Mark Wielaard [Wed, 7 Jan 2026 21:20:49 +0000 (22:20 +0100)] 
Disable linux madvise MADV_GUARD_INSTALL

glibc 2.42+ (with linux 6.13+) uses MADV_GUARD_INSTALL to setup stack
guard pages. valgrind currently isn't able to track this and such
guard pages also don't show up in /proc maps (only in /proc pagemap
since linux 6.14). For now valgrind fails a madvise MADV_GUARD_INSTALL
syscall with EINVAL. This causes glibc to fall back to mprotect
PROT_NONE which valgrind is able to track.

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

4 months agovalgrind.h: FreeBSD cleanup
Paul Floyd [Tue, 6 Jan 2026 19:33:16 +0000 (20:33 +0100)] 
valgrind.h: FreeBSD cleanup

Wasn't undefining the PLAT macros
Add FreeBSD to the head and tail comments for each arch

amd64 is getting crowded, if we add any more OSes then I think
just "amd64 platforms" will be enough rather than listing 5 or 6
or more platforms.

4 months agosolaris readlinkat: check that buf is accessible for proc self path a.out
Paul Floyd [Sun, 4 Jan 2026 09:17:15 +0000 (10:17 +0100)] 
solaris readlinkat: check that buf is accessible for proc self path a.out

4 months agosyswrap readlink and linux readlinkat: check that buf is accessible for proc self...
Paul Floyd [Sun, 4 Jan 2026 08:34:54 +0000 (09:34 +0100)] 
syswrap readlink and linux readlinkat: check that buf is accessible for proc self exe case

Also update the t testcases to cover this.

4 months agoFix bug514094,vgtest typo in none/tests/Makefile.am
Mark Wielaard [Sat, 3 Jan 2026 21:50:28 +0000 (22:50 +0100)] 
Fix bug514094,vgtest typo in none/tests/Makefile.am

4 months agoregtest: fix warning
Paul Floyd [Sat, 3 Jan 2026 21:32:56 +0000 (22:32 +0100)] 
regtest: fix warning

Added a nice const named variable then didn't use it

4 months agoRegtest: add missing readlinkat_self files
Paul Floyd [Sat, 3 Jan 2026 21:16:58 +0000 (22:16 +0100)] 
Regtest: add missing readlinkat_self files

4 months agoreadlink[at] syswrap: limit copy to bufsiz when path is proc self exe
Paul Floyd [Sat, 3 Jan 2026 20:17:00 +0000 (21:17 +0100)] 
readlink[at] syswrap: limit copy to bufsiz when path is proc self exe

4 months agoBug 514094 - readlink("/proc/self/exe") overwrites buffer beyond its return value
Paul Floyd [Sat, 3 Jan 2026 12:48:50 +0000 (13:48 +0100)] 
Bug 514094 - readlink("/proc/self/exe") overwrites buffer beyond its return value

Used the reproducer as the basis for a test on Solaris and Linux.

4 months agoSolaris: set VG_(resolved_exename) in load_client()
Paul Floyd [Sat, 3 Jan 2026 17:24:34 +0000 (18:24 +0100)] 
Solaris: set VG_(resolved_exename) in load_client()

Haven't needed it yet, but I would like to try using it in the
readlink syscall wrapper.

4 months agoVEX: Fix srcdir != builddir build
Mark Wielaard [Sat, 3 Jan 2026 13:08:08 +0000 (14:08 +0100)] 
VEX: Fix srcdir != builddir build

commit 370531396ad1 ("s390: Use objdump machinery to disassemble insns")
broke srcdir != builddir builds with:

../../../VEX/priv/objdump/s390-dis.c:26:10: fatal error: main_util.h: No such file or directory
   26 | #include "main_util.h"     // vex_strlen
      |          ^~~~~~~~~~~~~

This comes from including the "wrong" priv directory for main_util.h
in Makefile.vex.am. Fix this by adding -I$(srcdir)/priv. This was
always wrong but didn't cause issues till now because of the extra
objdump subdir.

4 months agos390: Use objdump machinery to disassemble insns
Florian Krohm [Fri, 2 Jan 2026 16:44:49 +0000 (16:44 +0000)] 
s390: Use objdump machinery to disassemble insns

New directory VEX/priv/objdump to contain the bits and pieces
needed from binutils.

s390_disasm.c removed as the S390_DISASM machinery is no longer
needed.
host_s390_defs.c and guest_s390_toIR.c adjusted accordingly.

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

4 months agolibcfile VG_(lstat): make the #else #elif darwin
Paul Floyd [Thu, 1 Jan 2026 17:56:28 +0000 (18:56 +0100)] 
libcfile VG_(lstat): make the #else #elif darwin

and add a proper #else with a #error, which was missing

4 months agoUpdate AUTHORS
Paul Floyd [Thu, 1 Jan 2026 08:56:54 +0000 (09:56 +0100)] 
Update AUTHORS

Add an entry for Louis Brunner describing his macOS work.
Update my own entry to match the one for the 'developers' page
on valgrind.org.

4 months agos390 disasm-test: Add --all-except-exrl command line option.
Florian Krohm [Wed, 31 Dec 2025 18:55:37 +0000 (18:55 +0000)] 
s390 disasm-test: Add --all-except-exrl command line option.

EX and EXRL need special scaffolding and treatment.

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

4 months agoVEX: Support %i format
Florian Krohm [Wed, 31 Dec 2025 18:48:13 +0000 (18:48 +0000)] 
VEX: Support %i format

Small pre-patch for objdump-based disassembly.

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

5 months agoRegtest: use basic stderr filter for none/tests/iropt-test
Paul Floyd [Sun, 28 Dec 2025 10:34:38 +0000 (11:34 +0100)] 
Regtest: use basic stderr filter for none/tests/iropt-test

This was doing no filtering. macOS needs filtering in every
directory otherwise there wioll be a failure with a diff from
dsymutil like

+--49940-- run: /usr/bin/dsymutil "./iropt-test-sec"

5 months agoRegtest: another test that needs to increase the value for an 'unused' fd.
Paul Floyd [Sat, 27 Dec 2025 17:56:39 +0000 (18:56 +0100)] 
Regtest: another test that needs to increase the value for an 'unused' fd.

5 months agoRegtest: increase the 'unused' fd value in none use_after_close
Paul Floyd [Sat, 27 Dec 2025 17:48:28 +0000 (18:48 +0100)] 
Regtest: increase the 'unused' fd value in none use_after_close

Darwin 22 dyld seems to use 9 fds. We were using 7 as the 'unused'
value but that will soon be no longer true on all platforms.

5 months agoVEX: Add function vex_vsprintf.
Florian Krohm [Fri, 26 Dec 2025 20:24:50 +0000 (20:24 +0000)] 
VEX: Add function vex_vsprintf.

Small pre-patch for objdump-based disassembly.

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

5 months agoDarwin regtest: ensure no stdout output for memcheck/tests/darwin/deep_badparam
Paul Floyd [Fri, 26 Dec 2025 13:20:34 +0000 (14:20 +0100)] 
Darwin regtest: ensure no stdout output for memcheck/tests/darwin/deep_badparam

The test was doing a write of an uninit ilocal 32byte char buffer.
This has started outputting junk resulting in a stdout diff. So
make sure that the buffer only contains zeros (but still uninit).
Hope the compiler doesn't get too smart.

5 months agoDarwin regtest: update a filter following the previous commit
Paul Floyd [Fri, 26 Dec 2025 12:30:41 +0000 (13:30 +0100)] 
Darwin regtest: update a filter following the previous commit

5 months agoDarwin memcmp redir: fix platform related issue
Paul Floyd [Fri, 26 Dec 2025 12:20:15 +0000 (13:20 +0100)] 
Darwin memcmp redir: fix platform related issue

Replacing just _platform_memcmp results in crashes when returning
from the call. Instead on macOS 12 we need to replace the variant(s?).

5 months agoDarwin redir: add a replacement for memmem
Paul Floyd [Fri, 26 Dec 2025 09:19:53 +0000 (10:19 +0100)] 
Darwin redir: add a replacement for memmem

Of course, a bit different from the existing one.

5 months agoAdd SSE4.1 PMULLD instruction for x86 32 bit
Alexandra Hájková [Wed, 17 Dec 2025 11:59:19 +0000 (06:59 -0500)] 
Add SSE4.1 PMULLD instruction for x86 32 bit

Support pmulld (packed multiply 32-bit doubleword integers) instruction
in guest_x86_toIR.c and host_x86_isel.c. Add test function to
sse4-common.h and update none/tests/x86/sse4-x86.c to test the
instruction.

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

5 months agoRegtest: add a filter for syscall -> in libc
Paul Floyd [Thu, 25 Dec 2025 08:22:48 +0000 (09:22 +0100)] 
Regtest: add a filter for syscall -> in libc

5 months agoClean up a few loose ends from previous commit adding Darwin 21 support.
Paul Floyd [Thu, 25 Dec 2025 08:02:33 +0000 (09:02 +0100)] 
Clean up a few loose ends from previous commit adding Darwin 21 support.

Update NEWS, one missed expected update and left over debug printfs
in a newly failing Darwin testcase.

5 months agoBug 513636 - Support macOS 12.0 (Monterey)
Paul Floyd [Wed, 24 Dec 2025 16:36:11 +0000 (17:36 +0100)] 
Bug 513636 - Support macOS 12.0 (Monterey)

Intel only for the moment.

5 months agoDarwin syswrap: 1st arg of posix_spawn can be NULL
Paul Floyd [Wed, 24 Dec 2025 16:15:49 +0000 (17:15 +0100)] 
Darwin syswrap: 1st arg of posix_spawn can be NULL

5 months agoDRD regtest: half fix tc22_exit_w_lock on macOS 10.15
Paul Floyd [Wed, 24 Dec 2025 13:29:14 +0000 (14:29 +0100)] 
DRD regtest: half fix tc22_exit_w_lock on macOS 10.15

Still has (below main) like Solaris (but unlike macOS 10.14)

5 months agoDRD regtest: delete tc22_exit_w_lock 32bit variant, rename 64bit one
Paul Floyd [Wed, 24 Dec 2025 12:18:36 +0000 (13:18 +0100)] 
DRD regtest: delete tc22_exit_w_lock 32bit variant, rename 64bit one

The 32bit one isn't used by FreeBSD x86. In the event that it is needed
by some platform I'll put it back.

5 months agoDarwin suppressions: add another for getaddrinfo
Paul Floyd [Wed, 24 Dec 2025 10:43:44 +0000 (11:43 +0100)] 
Darwin suppressions: add another for getaddrinfo

On macOS 10.15

5 months agoSolaris regtest: update for drd/tests/tc22_exit_w_lock
Paul Floyd [Wed, 24 Dec 2025 10:38:23 +0000 (11:38 +0100)] 
Solaris regtest: update for drd/tests/tc22_exit_w_lock

I removed -q so that the test passes with Darwin. That
only caused the test to fail on illumos. Ho hum.

5 months agoDarwin mmap: use ARG5 for VG_(di_notify_mmap)
Paul Floyd [Tue, 23 Dec 2025 20:22:17 +0000 (21:22 +0100)] 
Darwin mmap: use ARG5 for VG_(di_notify_mmap)

The fix for bug280965 (a long long time ago) changed VG_(di_notify_mmap)
so that instead of opening a new fd to peek at the ELF header it would
reuse the same mmap fd with pread() to avoid resetting fcntl flags.
Except that the patch was applied to mmap in syswrap-generic but not
to the mmap in syswrap-darwin. So the problem remained there on Darwin
for 14 years.

5 months agoDarwin regtest: add prereq for massif/tests/pages_as_heap
Paul Floyd [Tue, 23 Dec 2025 18:01:27 +0000 (19:01 +0100)] 
Darwin regtest: add prereq for massif/tests/pages_as_heap

Darwin has brk() but all it does is return ENOMEM.

5 months agoDarwin: revert change for async signal termination message
Paul Floyd [Tue, 23 Dec 2025 18:00:48 +0000 (19:00 +0100)] 
Darwin: revert change for async signal termination message

5 months agoDarwin regtest: one more with a sem_init prereq
Paul Floyd [Tue, 23 Dec 2025 16:18:48 +0000 (17:18 +0100)] 
Darwin regtest: one more with a sem_init prereq

5 months agoDRD regtest: don't use -q with tc22_exit_w_lock
Paul Floyd [Tue, 23 Dec 2025 15:30:53 +0000 (16:30 +0100)] 
DRD regtest: don't use -q with tc22_exit_w_lock

This seems a better fix than turning off Darwin aysync signal
termination messages.

Also I don't think that the 32bit variant is used any more.

5 months agoDarwin signals: don't try to check for async signals for "Process terminating" message
Paul Floyd [Tue, 23 Dec 2025 13:55:59 +0000 (14:55 +0100)] 
Darwin signals: don't try to check for async signals for "Process terminating" message

Darwin can't tell sync and async apart so don't bother trying.

5 months agoDarwin regtest: add a prereq for helgrind/tests/bug327548
Paul Floyd [Tue, 23 Dec 2025 13:31:02 +0000 (14:31 +0100)] 
Darwin regtest: add a prereq for helgrind/tests/bug327548

sem_init returns ENOSYS on Darwin so use the DRD script to check
that sem_init is supported (i.e., not Darwin).

5 months agoDarwin helgrind: change api error handling for pthread_rwlock_trywrlock
Paul Floyd [Tue, 23 Dec 2025 13:29:19 +0000 (14:29 +0100)] 
Darwin helgrind: change api error handling for pthread_rwlock_trywrlock

This may return EDEADLK is the rwlock is already locked by the same
thread. Darwin seems to be the only OS that does this.

5 months agoDarwin regtest: update none apple-main-arg for macOS 10.14
Paul Floyd [Tue, 23 Dec 2025 09:55:25 +0000 (10:55 +0100)] 
Darwin regtest: update none apple-main-arg for macOS 10.14

Looks like the apple pointer to the executable name started having a prefix
starting with macOS 10.14.

5 months agoDarwin regtest: update for one of the several memalign_args expecteds
Paul Floyd [Tue, 23 Dec 2025 07:31:02 +0000 (08:31 +0100)] 
Darwin regtest: update for one of the several memalign_args expecteds

5 months agoDarwin: fix x86 build on macOS 10.13 (and probably 10.14)
Paul Floyd [Tue, 23 Dec 2025 07:27:29 +0000 (08:27 +0100)] 
Darwin: fix x86 build on macOS 10.13 (and probably 10.14)

5 months agoDarwin: add newline to if statements
Paul Floyd [Tue, 23 Dec 2025 06:25:57 +0000 (07:25 +0100)] 
Darwin: add newline to if statements

For some reason on macOS 12 the apple pointer is wrong. It's a pain
to debug code where the if and the true statement are on the same
line.

5 months agoHelgrind regtest: add asserts to cond_timedwait_test.c
Paul Floyd [Mon, 22 Dec 2025 09:19:30 +0000 (10:19 +0100)] 
Helgrind regtest: add asserts to cond_timedwait_test.c

This test fails on Darwin, It looks like Darwin uses another mutex
and it's complaining that the condition mutex is not locked when
the unlock call is made. I made these changes when checking that the
testcase has the same behaviour on FreeBSD.

5 months agoDarwin: revert a bit of overzealous merging
Paul Floyd [Sat, 20 Dec 2025 18:44:39 +0000 (19:44 +0100)] 
Darwin: revert a bit of overzealous merging

5 months agoDarwin: fix a compiler warning
Paul Floyd [Sat, 20 Dec 2025 17:51:43 +0000 (18:51 +0100)] 
Darwin: fix a compiler warning

Make a function static since it's only used in the one compilation unit.

5 months agoBug 513533 - Support macOS 11.0 (Big Sur)
Paul Floyd [Sat, 20 Dec 2025 12:01:26 +0000 (13:01 +0100)] 
Bug 513533 - Support macOS 11.0 (Big Sur)

Most of the work for this was done by Louis Brunner.
Thanks Louis.

5 months agoregtest: filter leaks from memcheck threadname_xml and update expected
Paul Floyd [Fri, 19 Dec 2025 11:33:50 +0000 (12:33 +0100)] 
regtest: filter leaks from memcheck threadname_xml and update expected

5 months agoregtest: change memcheck threadname_xml prereq
Paul Floyd [Fri, 19 Dec 2025 06:07:12 +0000 (07:07 +0100)] 
regtest: change memcheck threadname_xml prereq

This was using test -u which doesn't work on Darwin so I changed that to -e.

5 months agoBug 258140 - Valgrind on OS X always reports some memory "still reachable"
Paul Floyd [Fri, 19 Dec 2025 05:58:51 +0000 (06:58 +0100)] 
Bug 258140 - Valgrind on OS X always reports some memory "still reachable"

Just needed one more suppression for the minimal test in the bugzilla
item. I expect that there will be a seemingly endless number of leaks
in Darwin (different libs, later versions).

5 months agoDarwin and FreeBSD: and the two platforms to the check that 32bit executables can...
Paul Floyd [Thu, 18 Dec 2025 07:36:25 +0000 (08:36 +0100)] 
Darwin and FreeBSD: and the two platforms to the check that 32bit executables can be built

I don't think that I've ever tested this on a FreeBSD amd64 install without 32bit support.

This check is required on Darwin 19 and later.

5 months agoconfigure.ac: tabs to spaces in block setting PLATFORM PRI and SEC variables
Paul Floyd [Thu, 18 Dec 2025 07:30:07 +0000 (08:30 +0100)] 
configure.ac: tabs to spaces in block setting PLATFORM PRI and SEC variables

It was a mix of tabs and spaces, hard to read without the right tab width
setting.

5 months agoBug 513522 - m_libcassert.c: 'ordered comparison of pointer with integer zero' compil...
Paul Floyd [Thu, 18 Dec 2025 06:59:38 +0000 (07:59 +0100)] 
Bug 513522 - m_libcassert.c: 'ordered comparison of pointer with integer zero' compiler warning

5 months agos390 disasm-test: Add constraint for VPDI insn.
Florian Krohm [Wed, 17 Dec 2025 22:31:41 +0000 (22:31 +0000)] 
s390 disasm-test: Add constraint for VPDI insn.

5 months agoDarwin: add macOS 10.15 support
Paul Floyd [Sun, 14 Dec 2025 20:04:08 +0000 (21:04 +0100)] 
Darwin: add macOS 10.15 support

== 721 tests, 46 stderr failures, 6 stdout failures, 0 stderrB failures, 0 stdoutB failures, 4 post failures ==

A couple more failures in none (empty-exe and scripts/shell). Otherwise quite like
macOS 10.14.

Much of the code merged from Louis Brunner's git repo. Many thanks once again
Louis.

5 months agoLinux ppc32: map a few more syscalls
Sertonix [Mon, 15 Dec 2025 18:29:40 +0000 (18:29 +0000)] 
Linux ppc32: map a few more syscalls

5 months agoWrap new lsm_list_modules syscall
Martin Cermak [Tue, 16 Dec 2025 08:52:29 +0000 (09:52 +0100)] 
Wrap new lsm_list_modules syscall

The lsm_list_modules syscall returns a list of the active LSM ids. On
success this function returns the number of @ids array elements. This
value may be zero if there are no LSMs active. If @size is insufficient
to contain the return data -E2BIG is returned and @size is set to the
minimum required size. In all other cases a negative value indicating
the error is returned.

SYSCALL_DEFINE3(lsm_list_modules, u64 __user *, ids, u32 __user *, size,
                u32, flags)

Declare lsm_list_modules 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=513257

5 months agos390: Clarify a variable name.
Florian Krohm [Mon, 15 Dec 2025 22:38:37 +0000 (22:38 +0000)] 
s390: Clarify a variable name.

5 months agoTestcase tweak: clenup after yourself
Florian Krohm [Mon, 15 Dec 2025 10:24:49 +0000 (10:24 +0000)] 
Testcase tweak: clenup after yourself

5 months agoDarwin DRD: redirs for semaphore functions
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

5 months 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 months 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.

5 months 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.

5 months 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.

5 months 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.

5 months 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.

5 months 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.

5 months 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

5 months 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.

5 months 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.

5 months 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.

5 months 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.

5 months 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.

5 months 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

5 months 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 months 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 months 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 months 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 months 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 months 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 months 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.

5 months 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.

5 months 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.

5 months 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