i#5365 AArch64 tests: rseq tests failing on CentOS 9 #7790
+17
−1
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.
glibc 2.35+ (and 2.34+ for RHEL/CentOS and possibly other OSes that backported the feature) make use of the rseq syscall which interferes with DynamoRIO's rseq tests.
The rseq syscall in the rseq tests was always failing with errno set to EINVAL because glibc had already registered its own rseq structure and only one registration is allowed per thread.
We can fix this by explicitly turning off glibc's rseq registration for the effected tests by setting the environment variable: "GLIBC_TUNABLES=glibc.pthread.rseq=0".
Also fix the CMakeLists.txt function set_properties() which was erroneously adding the test prefix to the environment variable.
Issue: #5365
Co-authored-by: Jack Gallagher [email protected]