summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/elf_utils.c
Commit message (Collapse)AuthorAgeFilesLines
* MFC r295407:kib2016-03-121-2/+9
| | | | Make libc __pthread_map_stacks_exec() interposed.
* Implement __pthread_map_stacks_exec() callback for libc, to change thekib2011-01-081-0/+27
| | | | stack protection to allow execution for single-threaded processes.
* On shared object unload, in __cxa_finalize, call and clear all installedkib2010-08-231-0/+47
atexit and __cxa_atexit handlers that are either installed by unloaded dso, or points to the functions provided by the dso. Use _rtld_addr_phdr to locate segment information from the address of private variable belonging to the dso, supplied by crtstuff.c. Provide utility function __elf_phdr_match_addr to do the match of address against dso executable segment. Call back into libthr from __cxa_finalize using weak __pthread_cxa_finalize symbol to remove any atfork handler which function points into unloaded object. The rtld needs private __pthread_cxa_finalize symbol to not require resolution of the weak undefined symbol at initialization time. This cannot work, since rtld is relocated before sym_zero is set up. Idea by: kan Reviewed by: kan (previous version) MFC after: 3 weeks
OpenPOWER on IntegriCloud