diff options
author | Yann Sionneau <ysionneau@kalray.eu> | 2019-04-11 12:21:57 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbrodkorb@conet.de> | 2019-04-14 10:02:18 +0200 |
commit | 018ef9e16af6da971ca66ddcd54230edd6d6d65e (patch) | |
tree | 1dc0ab7a63469c8bfa425a72e7a94294345ed042 /libc/stdlib/getenv.c | |
parent | 5efc10d24e1fb7f59817f007c18219dfc46bf457 (diff) |
Fix TLS allocation and loading in !SHARED case
For ARCH where shared lib are not supported:
- SHARED is not set (!SHARED is true)
- __ARCH_HAS_NO_LDSO__ is set
so code inside #if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
is compiled-out.
But without a call do _dl_aux_init(), _dl_phdr stays NULL and
__libc_setup_tls won't be able to allocate memory for the in-executable TLS
and also won't be able to load the initimage from ELF TLS segment.
This results in segfault when doing things like "errno = 0" like
in tst-cancel15.c for instance in uClibc-ng testsuite.
Signed-off-by: Yann Sionneau <ysionneau@kalray.eu>
Diffstat (limited to 'libc/stdlib/getenv.c')
0 files changed, 0 insertions, 0 deletions