ldelf, libutee: add minimal Thread Local Storage support
Preparing for C++ support in TAs.

Adds enough runtime Thread Local Storage (TLS) support for the GNU C++
compilers (arm-linux-gnueabihf-g++, aarch64-linux-gnu-g++) to work with
OP-TEE. That is:

 - A Thread Control Block,
 - The __tls_get_addr() and dl_iterate_phdr() functions.

Note that __tls_get_addr() is an ABI helper so it has no prototype in a
user-accessible header file. dl_iterate_phdr() however is defined in
<link.h> and may be used in a TA. The file lib/libutee/include/link.h is
borrowed from Android's Bionic [1] with minor changes (added the
required #include statement and named the function parameters). A
similar <link.h> header is provided by other C libraries such as GNU
libc, musl and FreeBSD/NetBSD/OpenBSD.

Link: [1] https://android.googlesource.com/platform/bionic/+/master/libc/include/link.h
Signed-off-by: Jerome Forissier <jerome@forissier.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
1 parent cc4de91 commit 9d224046e71083e0fe3e8c26c22f729399c2c950
@Jerome Forissier Jerome Forissier authored on 21 Jul 2020
Jérôme Forissier committed on 6 Aug 2020
Showing 11 changed files
View
ldelf/ta_elf.c
View
ldelf/ta_elf.h
View
ldelf/ta_elf_rel.c
View
lib/libdl/dlfcn.c
View
lib/libutee/arch/arm/sub.mk
View
lib/libutee/arch/arm/tcb.c 0 → 100644
View
lib/libutee/arch/arm/user_ta_entry.c
View
lib/libutee/include/link.h 0 → 100644
View
lib/libutee/include/user_ta_header.h
View
ta/arch/arm/link.mk
View
typedefs.checkpatch