[ I should really have CC'd the selftests maintainer and mailing list. Adding them in Cc to patch 0/5 to bring this series to their attention. ]
----- On Jan 17, 2022, at 3:39 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:
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