diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2015-11-23 19:07:31 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2015-11-23 19:39:30 +0100 |
commit | 057b857cbeb0aa6e3cb1e6db4cd80ebbf9bfe274 (patch) | |
tree | 6e73b6b1d1695a826f3922e0c391613e0ebd5889 /ldso | |
parent | 082ae9d1289fe20f8e96c30cfe05650c3e72eb02 (diff) |
xtensa: remove ldso workaround by real pointer check
An abort() is only generated when gcc does not implement
a trap handler for the target architecture.
This fixes the abort() generation. Latest gcc git master
also contains a trap handler for xtensa.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Walemar Brodkorb <wbx@uclibc-ng.org>
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/include/tlsdeschtab.h | 2 | ||||
-rw-r--r-- | ldso/ldso/Makefile.in | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/ldso/include/tlsdeschtab.h b/ldso/include/tlsdeschtab.h index 86baea148..056f859b7 100644 --- a/ldso/include/tlsdeschtab.h +++ b/ldso/include/tlsdeschtab.h @@ -98,6 +98,8 @@ _dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset) test.tlsinfo.ti_module = map->l_tls_modid; test.tlsinfo.ti_offset = ti_offset; entry = htab_find_slot (ht, &test, 1, hash_tlsdesc, eq_tlsdesc); + if (entry == NULL) + _dl_exit(1); if (*entry) { td = *entry; diff --git a/ldso/ldso/Makefile.in b/ldso/ldso/Makefile.in index ffbb5ccd8..75c2a06c1 100644 --- a/ldso/ldso/Makefile.in +++ b/ldso/ldso/Makefile.in @@ -27,11 +27,6 @@ CFLAGS-$(DODEBUG)-ldso/ldso := -O2 -g CFLAGS-ldso.c := -DLDSO_ELFINTERP=\"$(TARGET_ARCH)/elfinterp.c\" -# avoid ld.so linking error since gcc 4.9.x: undefined reference to abort -ifeq ($(TARGET_ARCH),xtensa) -CFLAGS-ldso.c += -fno-delete-null-pointer-checks -endif - LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-$(UCLIBC_LDSO_NAME).so := -Wl,--dsbt-index=1 ifneq ($(SUPPORT_LD_DEBUG),y) LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS) |