summaryrefslogtreecommitdiff
path: root/ldso
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2015-11-23 19:07:31 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-11-23 19:39:30 +0100
commit057b857cbeb0aa6e3cb1e6db4cd80ebbf9bfe274 (patch)
tree6e73b6b1d1695a826f3922e0c391613e0ebd5889 /ldso
parent082ae9d1289fe20f8e96c30cfe05650c3e72eb02 (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.h2
-rw-r--r--ldso/ldso/Makefile.in5
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)