From 77b4b9f9b6277e21af26bd80cdaf3924f818d7a0 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Sun, 21 Oct 2007 15:36:17 +0000 Subject: Handle STT_COMMON symbols too. Following binutils release will set the type of common symbols to STT_COMMON instead of STT_OBJECTS, so the dynamic linker needs to handle this type os symbols too. Same changes have been added to glibc (See: bugzilla #5104). This patch ensures the uclibc will work with later bintuils. Signed-off-by: Carmelo Amoroso --- ldso/ldso/dl-hash.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ldso/ldso/dl-hash.c b/ldso/ldso/dl-hash.c index c19afb473..2d5ecddbb 100644 --- a/ldso/ldso/dl-hash.c +++ b/ldso/ldso/dl-hash.c @@ -177,7 +177,12 @@ char *_dl_find_hash(const char *name, struct dyn_elf *rpnt, struct elf_resolve * continue; if (sym->st_value == 0) continue; - if (ELF_ST_TYPE(sym->st_info) > STT_FUNC) + if (ELF_ST_TYPE(sym->st_info) > STT_FUNC + && ELF_ST_TYPE(sym->st_info) != STT_COMMON) + /* Ignore all but STT_NOTYPE, STT_OBJECT, STT_FUNC + * and STT_COMMON entries since these are no + * code/data definitions + */ continue; if (_dl_strcmp(strtab + sym->st_name, name) != 0) continue; -- cgit v1.2.3