]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Rework rtld's TLS Variant I implementation to match r326794
authorbrooks <brooks@FreeBSD.org>
Wed, 5 Sep 2018 23:23:16 +0000 (23:23 +0000)
committerbrooks <brooks@FreeBSD.org>
Wed, 5 Sep 2018 23:23:16 +0000 (23:23 +0000)
commitad8dc1e97b938aa9daa514de1b2faa9f1f64e4aa
tree1bdb2c8c9459a239aaa772b123a7ac894943fb29
parentbc92f163ac37934b227f48b68dca9730dba6c006
Rework rtld's TLS Variant I implementation to match r326794

The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes.  Thus,
port these changes to rtld.

This was previously commited as r337978 and reverted in r338149 due to
exposing a bug the ARM rtld.  This bug was fixed in r338317 by mmel.

Submitted by: James Clarke
Approved by: re (kib)
Reviewed by: kbowling
Testing by: kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D16510
libexec/rtld-elf/aarch64/rtld_machdep.h
libexec/rtld-elf/arm/rtld_machdep.h
libexec/rtld-elf/mips/rtld_machdep.h
libexec/rtld-elf/powerpc/rtld_machdep.h
libexec/rtld-elf/powerpc64/rtld_machdep.h
libexec/rtld-elf/riscv/rtld_machdep.h
libexec/rtld-elf/rtld.c