This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Another MIPS dl-lookup.c update
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: libc-ports at sourceware dot org
- Date: Wed, 16 Dec 2009 17:44:54 +0000 (UTC)
- Subject: Another MIPS dl-lookup.c update
Another change has gone into the libc dl-lookup.c, so I've applied the
patch also to the MIPS version.
diff --git a/ChangeLog.mips b/ChangeLog.mips
index 9dfe2a5..0f8f7c8 100644
--- a/ChangeLog.mips
+++ b/ChangeLog.mips
@@ -1,3 +1,7 @@
+2009-12-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/dl-lookup.c: Update from generic version.
+
2009-12-15 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Redefine O_SYNC and
diff --git a/sysdeps/mips/dl-lookup.c b/sysdeps/mips/dl-lookup.c
index c7deb4d..a9fff59 100644
--- a/sysdeps/mips/dl-lookup.c
+++ b/sysdeps/mips/dl-lookup.c
@@ -794,7 +794,7 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
if (__builtin_expect (protected != 0, 0))
{
/* It is very tricky. We need to figure out what value to
- return for the protected symbol. */
+ return for the protected symbol. */
if (type_class == ELF_RTYPE_CLASS_PLT)
{
if (current_value.s != NULL && current_value.m != undef_map)
@@ -839,7 +839,8 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
version, type_class, flags, skip_map);
/* The object is used. */
- current_value.m->l_used = 1;
+ if (__builtin_expect (current_value.m->l_used == 0, 0))
+ current_value.m->l_used = 1;
if (__builtin_expect (GLRO(dl_debug_mask)
& (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
@@ -861,7 +862,7 @@ _dl_setup_hash (struct link_map *map)
Elf_Symndx nchain;
if (__builtin_expect (map->l_info[DT_ADDRTAGIDX (DT_GNU_HASH) + DT_NUM
- + DT_THISPROCNUM + DT_VERSIONTAGNUM
+ + DT_THISPROCNUM + DT_VERSIONTAGNUM
+ DT_EXTRANUM + DT_VALNUM] != NULL, 1))
{
Elf32_Word *hash32
--
Joseph S. Myers
joseph@codesourcery.com