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
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
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
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
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
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.
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
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
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
The STFLE insn is always present on the supported machines.
- Remove s390_host_has_stfle, VEX_HWCAPS_S390X_STFLE, and EmFail_S390X_stfle
- Update tests/s390x_features.c
Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562
The long displacement facilities are always present on the supported
machines.
- Remove s390_host_has_ldisp and VEX_HWCAPS_S390X_LDISP
- Update tests/s390x_features.c
Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562
Remove EmFail_S390X_ecag, s390_host_has_stckf, and VEX_HWCAPS_S390X_STCKF.
Update none/tests/s390x/stckf.vgtest and tests/s390x_features.c
Part of fixing https://bugs.kde.org/show_bug.cgi?id=509562
- Update COPYING and VEX/LICENSE.GPL to version 3.
- Update README, NEWS, docs/manual license and contributing text.
- Update file headers to say either version 3 of the License,
or (at your option) any later version.
- Leave tests and perf file headers as is, unless the code is derived
from Valgrind/VEX.
- Leave valgrind.h, cachegrind.h, callgrind.h, drd.h, helgrind.h,
memcheck.h and dhat.h Hybrid-BSD licensed.
Make the IBM z17 machine model 9175 known to Valgrind. Also add the
expected output of the s390x-specific "ecag" test case on an IBM z17, so
the test case succeeds on that system.
The following files do not need to be executable:
- configure.ac
- Makefile*am
- *.in
The following files lack execute permission:
- tests/platform_test
- tests/vg_regtest
- perf/vg_perf
So from now on you can just run tests/vg_regtest and perf/vg_perf
without the perl prefix.
Docs changed accordingly.
The threadname tests fail on Illumos. Solaris has a syscall,
sys_lwp_name, which we intercept and record. Illumos doesn't
have that, with the pthread name functions looking ofr the name in /proc
That's not implemented in Valgrind so I'm turning those 2 tests off.
The other 3 are all based on none faultstatus. This test checks 4 things,
one of which is reading from a 32k mmap that is PRIVATE and READ but is
only backed by a 16k file. All other OSes generate a SIGBUS. Illumos
just reads 0 from the address.
Use gnulib m4/std-gnu11.m4 for that.
Also update the minimum autoconf version to 2.69. And the minimum
automake to 1.13. This lets us clean up configure.ac a little.
We would really like 2.70+ so we don't need the gnulib gnu11.m4. But
2.69 still seems in use on various stable systems. autoconf 2.70
was released end of 2020, autoconf 2.69 in 2012.
On different machines /bin/sh may be impersonated by different shells, and
those behave differently as to whether they write "Illegal instruction ..."
to stderr. While newer versions of bash do not, dash does.
For the op00 test case this means that an additional line may be written
to `op00.stderr.out', depending on which shell is being used. Hence
adding "Illegal instruction ..." as an expected line to `op00.stderr.exp'
wouldn't work on all systems.
Instead, fix this issue by adding the case of "illegal instruction" to the
general filtering logic in filter_stderr_basic.in, where various other
messages of this kind are already filtered out.
Reviewed-by: Andreas Arnez <arnez@linux.ibm.com>
One of the new log files was created in a way that was
oblivious to the chdir()'s in effect in the perl script.
Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
Extend vg_regtest to produce automake-style log files for each vgtest
case, so that developers and testsuite archiving/analysis tools such
as bunsen can examine passing as well as non-passing test outputs in
detail. The build-tree test-suite-overall.log file holds all the key
information about tests, especially failures.
Signed-Off-By: Frank Ch. Eigler <fche@redhat.com>
Due to the extra directory depth of dSYM directories the following line
my $dashes = "-" x (50 - length $full_dir);
generates a warning on Darwin because the length of $full_dir is more than 50
("Negative repeat count does nothing"). This change makes test_one_dir return
early if the directory contains "dSYM".
Adds a script tests/python_test.sh that checks whether there is a python3
binary and that it supports python version 3.9 or higher. Use this script
in the various cachegrind/tests annotate vgtests as prereq.
Extend --show-error-list=no|yes with all to allow to look also the
list of suppressed errors and see which supp entry is suppressing it.
Add an option also_suppressed in the monitor command 'c.vinfo all_errors'
to similarly be able to show the suppressed errors.
Small fix in check_makefile_consistency: avoid it considers emacs ~ files.
FreeBSD 15 has moved all libc functions that are just syscall
wrappers into libsys. That changes quite a few callstacks, so
I've added a load of filtering to make it look like the old
libc callstacks.
I'm also seeing new conflicts in _umtx_op_err for both DRD
and Helgrind that needed supressing.
The main change is to not assume that there is always 1 and only 1 RW segment.
Now the rw segment count is obtained from the macho segments.
I've had to make several changes to remove asserts that checked
that there is always 1 or more rw segments. I don't think that this
really affects 'normal' C and C++ compiled binaries. There is one
exp-bbv testcase (x86/million) that is written in assembler and
was failing until I removed all of the asserts.
There's still a bit more work to do.
1. Handle fat binaries - are these still a thing (with "apple silicon")?
2. Use a dynamically sized buffer for the segments rather than just 4k.
The z16 machine model hasn't been fully introduced to Valgrind yet. Add
the missing support:
* Add z16 to the list of machine models in each of `libvex.h',
`tests/s390x_features.c', and `s390-check-opcodes.pl'.
* Starting with z16, the "store facility list extended" (STFLE)
instruction can write four instead of three words. Reflect this in the
STFLE-helper and in the `stfle' test case.
* Pass the new STFLE-bits unchanged, except for the vector-packed-decimal
facility, which is unsupported by Valgrind.