summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/sys/linux/dl/do-lookup.h7
2 files changed, 9 insertions, 3 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index c9456fec8..56c2e40ec 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-09 Nick Clifton <nickc@redhat.com>
+
+ * libc/sys/linux/dl/do-lookup.h (FCT): Support symbols with
+ the STT_COMMON type.
+
2007-10-09 Ben Elliston <bje@au.ibm.com>
* libm/machine/spu/headers/acosd2.h: Include spu_intrinsics.h
diff --git a/newlib/libc/sys/linux/dl/do-lookup.h b/newlib/libc/sys/linux/dl/do-lookup.h
index b9364b95d..37718ce6c 100644
--- a/newlib/libc/sys/linux/dl/do-lookup.h
+++ b/newlib/libc/sys/linux/dl/do-lookup.h
@@ -83,9 +83,10 @@ FCT (const char *undef_name, unsigned long int hash, const ElfW(Sym) *ref,
(type_class & (sym->st_shndx == SHN_UNDEF)))
continue;
- if (ELFW(ST_TYPE) (sym->st_info) > STT_FUNC)
- /* Ignore all but STT_NOTYPE, STT_OBJECT and STT_FUNC entries
- since these are no code/data definitions. */
+ if (ELFW(ST_TYPE) (sym->st_info) > STT_FUNC
+ && ELFW(ST_TYPE) (sym->st_info) != STT_COMMON)
+ /* Ignore all but STT_NOTYPE, STT_OBJECT, STT_COMMON and
+ STT_FUNC entries since these are no code/data definitions. */
continue;
if (sym != ref && strcmp (strtab + sym->st_name, undef_name))