Update librseq to co-exist with glibc rseq integration
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 13 Dec 2021 15:40:54 +0000 (10:40 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 14 Dec 2021 20:32:03 +0000 (15:32 -0500)
commit9698c399cc7d01b09164ceae297b12e856975b5b
tree22b16dc2905ba1017de9dae601be60000d71dc48
parent14bd6e120a6b3db76464422af52d13b17673898d
Update librseq to co-exist with glibc rseq integration

Update librseq to co-exist with the rseq integration merged within the
glibc 2.35 release cycle.

librseq exposes its own "rseq_offset, rseq_size, rseq_flags" ABI.

Query for glibc rseq ABI (__rseq_offset, __rseq_size, __rseq_flags)
using dlsym() in a librseq library constructor. If those are found,
copy their values into rseq_offset, rseq_size, and rseq_flags.

Else, if those glibc symbols are not found, handle rseq registration
ourselves and use our own IE-model TLS to implement the rseq ABI
per-thread storage.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I1220cb5c31e823e9cddf211ec56fee03b729b137
13 files changed:
configure.ac
include/rseq/rseq-arm.h
include/rseq/rseq-arm64.h
include/rseq/rseq-mips.h
include/rseq/rseq-ppc-thread-pointer.h [new file with mode: 0644]
include/rseq/rseq-ppc.h
include/rseq/rseq-s390.h
include/rseq/rseq-x86-thread-pointer.h [new file with mode: 0644]
include/rseq/rseq-x86.h
include/rseq/rseq.h
src/Makefile.am
src/rseq.c
tests/Makefile.am
This page took 0.025568 seconds and 4 git commands to generate.