-
-
Notifications
You must be signed in to change notification settings - Fork 64
chore: upstream merge #141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Based on the specification in disasm-test/opcode.c With a few corrections: - kma: tighten up the assert - cdftr, cxftr: no emulation failure when floating-point-extension facility is not installed - cgdtra, cgxtra: check for floating-point-extension facility - ltdtr, ltxtr, lxdtr: check for DFP facility
After renaming various DFP instructions to their new name, reflect this in s390-check-opcodes.pl by ignoring their old names, so the checker doesn't complain about mismatches. Also, add the missing documentation in s390-opcodes.csv about the fact that the "with rounding mode" instruction versions cgdtra, cgxtra, and cxgtra are implemented.
The perform processor assist (PPA) instruction provides the CPU with special execution hints. It belongs to the processor-assist facility, which shares facility bit 49 with the execution-hint and load-and-trap facilities and with the miscellaneous-instruction-extensions facility 1. Implementing PPA enables setting facility bit 49 to one. Similar to other execution hint instructions, implement PPA as a no-op for now.
…ck_timedrwlock On Illumos these two functions are implemented by calling pthread_rwlock_clockrdlock and pthread_rwlock_clockwrlock respectively. Since we intercept both it was appearing as though the lock was being taken recursively when it wasn't. Fixed it by using a static flag for each and not callinng the client requests if already in a call to the timed functions. I think that musl also does this but, ho-hum, Helgrind has never worked on musl.
filter a change for the bottom of thread stacks and add use the same pre check as Linux for DRD OpenMP tests.
Add a redir for sem_timedwait (Solaris redirects sema_timedwait which seems to have been replaced on Illumos). Filter the arena size for the free_is_write test Use the Illumos expected for gone_abrt_xml Add Helgrind suppressions for printf, pthread_barrier_init and pthread_barrier_destroy.
pthread_rwlock_timedrdlock and pthread_rwlock_clockrdlock were generating API errors if they timed out. This fixes that and only generates API errors for non-zero and non-ETIMEDOUT return codes.
Initial patch from Amir Szekely <[email protected]
The VTM instruction is currently translated to a dirty helper call, which comes with the usual drawbacks. Replace its implementation and remove the dirty helper.
Illumos GCC doesn't have -pie. Also use it for the link command.
No impact, typo in a comment.
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.
disasm-test generated this test: asm volatile("srnmb 4095(%r0)"); which was disassembled in VEX to srnmb 0 causing a mismatch with what objdump does. 4095 is not a valid bfp rounding mode and the old implementation of s390_irgen_SRNMB let it slide by with a warning. However, POP calls for a specification exception in this case. This is what this patch changes.i It also eliminates the s390_irgen_srnmb_wrapper function along the way. While adjusting none/tests/s390x/srnmb.* I noticed that the line number shown in the specification exception is incorrect. This is not a regression. It has been incorrect before as well. I have opened https://bugs.kde.org/show_bug.cgi?id=502729 fro the line number issue.
There's an uninitialized read in /usr/bin/printf when using the default en_US.UTF-8 locale. This isn't a printf test, and using the C locale makes the error go away.
This patch makes VEX disassembly match objdump disassembly for objdump versions >= 2.44. Prior objdump versions did not handle the nuances of the "rotate and ..." set of opcodes and there was also a bug disassembling BC insns. Fixes https://bugs.kde.org/show_bug.cgi?id=495817
The checker requires objdump --version >= 2.44 Add command line flag --check-prereq to disasm-test and use it in disasm-test.vgtest. New file none/tests/s390x/disasm-test/disasm-test.post.exp as the checker is run in the "post" hook.
I missed one level of ../ and didn't see that there was already a prereq: in each of these two files.
On Illumos `uname -o` outputs "illumos". We weren't testing for that so it fell through to the Linux block which runs libc.so to get the version string. On Illumos that outputs usage: ld.so.1 [-e option,...] dynamic-object [object args,...]
These messages were missing for the test none/tests/solaris/stack_overflow on Illumos. The test now passes.
…text_fpu The expected contains 8 errors for if (inhandler[1] || inhandler[3] || inhandler[5] || inhandler[7]) assert(0); whilst I would expect 4 (the 4 array elements are uninitialised). It is also failing on Solaris 11.4.
Update futimesat syscall wrapper so that it doesn't consider the special value AT_FDCWD (-100) an invalid file descriptor. https://bugs.kde.org/show_bug.cgi?id=507868
Make sure pybuild.sh, ltp-tester.sh, ltp-apply-patches.sh, s390-check-opcodes.pl, s390-runone scripts, ltp filters, ltp patches and pylintrc are added to the dist. This makes sure users can run the scripts and make ltpchecks not just from a git checkout, but also from a release or snapshots tar. Also use the ustar format to package files, the path under valgrind-x.yy.z/auxprogs/ltp-patches might be larger than 99 chars. automake 1.18 already defaults to the ustar format.
Reuse the vmsplice syscall wrapper in coregrind/m_syswrap/syswrap-linux.c for mips64 as well. And make sure arm64-linux and riscv64-linux also use the POST vmsplice wrapper.
Specifically: sys_getrlimit sys_mincore sys_tkill sys_unshare sys_splice sys_tee sys_vmsplice sys_fanotify_init sys_fanotify_mark sys_kcmp sys_bpf https://bugs.kde.org/show_bug.cgi?id=508030
Do more fine-grained checks within sys_faccessat and sys_faccessat2 syscall wrappers. Allow passing special value of VKI_AT_FDCWD as a file descriptor. Check for valid flags. https://bugs.kde.org/show_bug.cgi?id=507853
Define __NR_statmount and __NR_listmount. This update makes the source buildable on the mips32 arch. https://bugs.kde.org/show_bug.cgi?id=508027
Command line flags that modify variable vex_control did not have the desired effect when processed dynamically via VALGRIND_CLO_CHANGE. The fix is to call the new function LibVEX_set_VexControl in process_dynamic_option. Fixes https://bugs.kde.org/show_bug.cgi?id=508093
No need to run random tests for binary IROps with 1-bit wide operands.
Defaults to "yes". Add VexControl::iropt_fold_expr and observe it in fold_Expr_WRK. This flag will be used shortly in the iropt-test program. Users are not expected to use it which is why I'm not announcing it in NEWS.
Multiple `make ltpchecks` failures seem tp be caused by PRE(sys_fchownat) not handling VKI_AT_FDCWD properly. This specifically impacts aarch64 test results these days. https://bugs.kde.org/show_bug.cgi?id=508154
Using LHI is wrong as it sign-extends. Use IILF instead. This has been wrong since day #1. Found by iropt-test.
When dlopen is used we might end up in an assembly powerpc/strcmp.S variant that is optimized in a way memcheck cannot proof correct. We try to intercept strcmp in ld.so, but might fail when strcmp is called before our interception code is loaded. Having an hardwire for ld.so strcmp (earlier intercept) would solve this. https://bugs.kde.org/show_bug.cgi?id=508145
Multiplication is performed using 4-byte values. There were two bugs: (1) Iop_MullS8/16 operands weren't sign-extended (2) No shifting and OR'ing required to access the result. r11[32:63] has it. Found by iropt-test.
Easy as pie and fewer special cases for iropt-test.
Easy as pie and fewer special cases for iropt-test.
Bug was introduced by yours truly in e3f078d.
Smart Diff (ubuntu-24.04): FailureExpected tolerance
|
Smart Diff (macos-14): FailureExpected tolerance
|
Smart Diff (macos-13): FailureExpected tolerance
|
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.