[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r13243 - in /fsf/trunk/ports: ChangeLog.mips sysdeps/mips/dl-lookup.c
- To: commits@xxxxxxxxxx
- Subject: [commits] r13243 - in /fsf/trunk/ports: ChangeLog.mips sysdeps/mips/dl-lookup.c
- From: eglibc@xxxxxxxxxx
- Date: Wed, 23 Mar 2011 07:04:20 -0000
Author: eglibc
Date: Wed Mar 23 00:04:18 2011
New Revision: 13243
Log:
Import glibc-ports-mainline for 2011-03-23
Modified:
fsf/trunk/ports/ChangeLog.mips
fsf/trunk/ports/sysdeps/mips/dl-lookup.c
Modified: fsf/trunk/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/ports/ChangeLog.mips (original)
+++ fsf/trunk/ports/ChangeLog.mips Wed Mar 23 00:04:18 2011
@@ -1,3 +1,7 @@
+2011-03-22 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/dl-lookup.c: Update from generic version.
+
2011-01-25 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/bits/mman.h (MADV_HUGEPAGE,
Modified: fsf/trunk/ports/sysdeps/mips/dl-lookup.c
==============================================================================
--- fsf/trunk/ports/sysdeps/mips/dl-lookup.c (original)
+++ fsf/trunk/ports/sysdeps/mips/dl-lookup.c Wed Mar 23 00:04:18 2011
@@ -1,7 +1,6 @@
/* Look up a symbol in the loaded objects.
MIPS/Linux version - special handling of non-PIC undefined symbol rules.
- Copyright (C) 1995-2005, 2006, 2007, 2009, 2010
- Free Software Foundation, Inc.
+ Copyright (C) 1995-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -381,8 +380,19 @@
if (entries[idx].hashval == new_hash
&& strcmp (entries[idx].name, undef_name) == 0)
{
- result->s = entries[idx].sym;
- result->m = (struct link_map *) entries[idx].map;
+ if ((type_class & ELF_RTYPE_CLASS_COPY) != 0)
+ {
+ /* We possibly have to initialize the central
+ copy from the copy addressed through the
+ relocation. */
+ result->s = sym;
+ result->m = (struct link_map *) map;
+ }
+ else
+ {
+ result->s = entries[idx].sym;
+ result->m = (struct link_map *) entries[idx].map;
+ }
__rtld_lock_unlock_recursive (tab->lock);
return 1;
}