glibc-2.35 will be released on 2022-02-01. It introduces a user-space ABI based on the thread pointer to access a reserved area of the TCB. The rseq selftests originally expected the rseq thread data to sit in a __rseq_abi TLS variable. Considering that the rseq ABI only allows a single rseq registration per thread, both cannot actively coexist in a process. Adapt the selftests librseq implementation to become compatible with glibc-2.35. Keep a fallback implementation based on TLS available when an older glibc is detected. Feedback is welcome, Thanks, Mathieu Mathieu Desnoyers (5): selftests/rseq: Remove useless assignment to cpu variable selftests/rseq: Remove volatile from __rseq_abi selftests/rseq: Introduce rseq_get_abi() helper selftests/rseq: Introduce thread pointer getters selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35 tools/testing/selftests/rseq/Makefile | 2 +- tools/testing/selftests/rseq/param_test.c | 4 +- tools/testing/selftests/rseq/rseq-arm.h | 32 ++-- tools/testing/selftests/rseq/rseq-arm64.h | 32 ++-- .../rseq/rseq-generic-thread-pointer.h | 25 +++ tools/testing/selftests/rseq/rseq-mips.h | 32 ++-- .../selftests/rseq/rseq-ppc-thread-pointer.h | 30 ++++ tools/testing/selftests/rseq/rseq-ppc.h | 32 ++-- tools/testing/selftests/rseq/rseq-s390.h | 24 +-- .../selftests/rseq/rseq-thread-pointer.h | 19 +++ .../selftests/rseq/rseq-x86-thread-pointer.h | 40 +++++ tools/testing/selftests/rseq/rseq-x86.h | 30 ++-- tools/testing/selftests/rseq/rseq.c | 161 +++++++++--------- tools/testing/selftests/rseq/rseq.h | 24 ++- 14 files changed, 302 insertions(+), 185 deletions(-) create mode 100644 tools/testing/selftests/rseq/rseq-generic-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-ppc-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-x86-thread-pointer.h -- 2.17.1