[PATCH 0/3] Consolidate static TLS allocation for static binaries, fix extra TLS
Florian Weimer
fweimer@redhat.com
Sun Jan 12 21:00:40 GMT 2025
I found a couple of very suspicious, long-term issues in csu/libc-tls.c,
so I'm proposing it to replace with the more extensively tested code
from elf/dl-tls.c.
Tested on aarch64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
x86_64-linux-gnu. Built with build-many-glibcs.py.
I'm going to test this on s390x before committing it.
Thanks,
Florian
Florian Weimer (3):
elf: Iterate over loaded object list in _dl_determine_tlsoffset
Consolidate TLS block allocation for static binaries with ld.so
Linux: Add tests that check that TLS and rseq area are separate
csu/libc-tls.c | 194 ++++--------------
elf/dl-tls.c | 123 ++++-------
elf/dl-tls_block_align.h | 70 +++++++
elf/rtld.c | 23 +--
sysdeps/unix/sysv/linux/Makefile | 14 ++
.../linux/tst-rseq-tls-range-4096-static.c | 1 +
.../unix/sysv/linux/tst-rseq-tls-range-4096.c | 1 +
.../unix/sysv/linux/tst-rseq-tls-range-mod.c | 1 +
.../sysv/linux/tst-rseq-tls-range-static.c | 1 +
sysdeps/unix/sysv/linux/tst-rseq-tls-range.c | 168 +++++++++++++++
10 files changed, 341 insertions(+), 255 deletions(-)
create mode 100644 elf/dl-tls_block_align.h
create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c
create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c
create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c
create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c
create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-tls-range.c
base-commit: 53a71b9f66dbc7f0ce44ec95bff7caa31fa0374b
--
2.47.1
More information about the Libc-alpha
mailing list