Skip to content

Conversation

@philramsey-arm
Copy link
Collaborator

@philramsey-arm philramsey-arm commented Jan 29, 2026

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]

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 by
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
@philramsey-arm philramsey-arm changed the title i#5365 Fix rseq tests on CentOS 9 i#5365 AArch64 tests: rseq tests failing on CentOS 9 Jan 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants