aad599979d
_rtld_tls_allocate and _rtld_tls_free. libpthread uses this functions to setup the thread private area of all new threads. ld.elf_so is responsible for setting up the private area for the initial thread. Similar functions are called from _libc_init for static binaries, using dl_iterate_phdr to access the ELF Program Header. Add test cases to exercise the different TLS storage models. Test cases are compiled and installed on all platforms, but are skipped on platforms not marked for TLS support. This material is based upon work partially supported by The NetBSD Foundation under a contract with Joerg Sonnenberger. It is inspired by the TLS support in FreeBSD by Doug Rabson and the clean ups of the DragonFly port of the original FreeBSD modifications.
38 lines
1.0 KiB
Plaintext
38 lines
1.0 KiB
Plaintext
rtld:
|
|
* resolve MIPS binding lossage
|
|
|
|
TLS:
|
|
* implement proper allocator for static TLS and support for actively
|
|
freeing DTV entries.
|
|
|
|
binutils/gcc:
|
|
* alpha: why are there GLOB_DAT relocs in ld.elf_so?
|
|
* alpha: bogus textrels in rtti info
|
|
* mips: why are there global GOT relocs in ld.elf_so?
|
|
* mips: bogus textrels in .rel.dyn
|
|
* powerpc: make sure the .got section is always executable
|
|
* powerpc: fix ld scripts so that .rodata is still used for PIC
|
|
|
|
machine-specific:
|
|
* #ifdefs:
|
|
headers.c:#ifndef __mips__
|
|
headers.c:#ifdef __mips__
|
|
reloc.c:#if defined(__hppa__)
|
|
rtld.c:#if !defined(__hppa__)
|
|
rtld.c:#if !defined(__mips__) && !defined(__hppa__)
|
|
rtld.c:#if !defined(__arm__) && !defined(__mips__) && !defined(__sh__)
|
|
rtld.c:#ifdef __mips__
|
|
rtld.h:#ifdef __mips__
|
|
symbol.c:#ifndef __mips__
|
|
|
|
issues to research:
|
|
* sh, x86_64 have different absolute and GLOB_DAT relocs; nothing else does
|
|
* sh, vax, x86_64 use addend on PLT; nothing else does
|
|
|
|
|
|
rela: alpha hppa m68k powerpc sh sparc sparc64 vax x86_64
|
|
rel: arm i386 mips
|
|
|
|
- mycroft
|
|
2003/09/24
|