From 057b857cbeb0aa6e3cb1e6db4cd80ebbf9bfe274 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 23 Nov 2015 19:07:31 +0100 Subject: 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 Signed-off-by: Walemar Brodkorb --- ldso/include/tlsdeschtab.h | 2 ++ ldso/ldso/Makefile.in | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'ldso') 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) -- cgit v1.2.3