summaryrefslogtreecommitdiff
path: root/ldso/ldso/dl-debug.c
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2011-01-21 15:04:47 +0100
committerCarmelo Amoroso <carmelo.amoroso@st.com>2011-01-21 15:04:47 +0100
commit2aee0efdec50321ffbe6891c593611461cc7b16e (patch)
treef6b3c17d1e3fddf14360317f4f18b86b0c83c045 /ldso/ldso/dl-debug.c
parent8100a075b7dd7471562decb1860571a335d68b0d (diff)
parentb5dd2e706c1a098b2e8cd8df10500a3dde350efc (diff)
Merge remote branch 'origin/master' into prelink
* origin/master: bump version to 0.9.32-rc2-git release 0.9.32-rc2 nptl: Fix __USER_LABEL_PREFIX__ concatenatio nptl: fix start_thread() for _STACK_GROWS_UP ldso: get rid of _dl_lookup_hash Add protected symbols support for all architectures Revert "ldso/arm: Correct protected symbol resolution" Revert "ldso_sh: add support for protected symbols to SH" Revert "ldso/i386: support protected symbols" cris: Fix build issues syslog: fix 'everyone logs with user facility' __psfs_parse_spec: always use long int for %p buildsys: headers target should not depend on sysnum.h buildsys: fix make release target nptl: get rid of the last preprocessor warning when __ASSUME_TGKILL is not defined remove uClibc_ctype.h if !LOCALE Revert "Makefile.in: Add header to 'all' target" nptl: get rid of preprocessor warning when __ASSUME_TGKILL is not defined Conflicts: ldso/include/dl-hash.h ldso/ldso/arm/elfinterp.c ldso/ldso/avr32/elfinterp.c ldso/ldso/bfin/elfinterp.c ldso/ldso/cris/elfinterp.c ldso/ldso/dl-hash.c ldso/ldso/i386/elfinterp.c ldso/ldso/m68k/elfinterp.c ldso/ldso/mips/elfinterp.c ldso/ldso/powerpc/elfinterp.c ldso/ldso/sh/elfinterp.c ldso/ldso/sh64/elfinterp.c ldso/ldso/sparc/elfinterp.c ldso/ldso/x86_64/elfinterp.c ldso/ldso/xtensa/elfinterp.c ldso/libdl/libdl.c Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'ldso/ldso/dl-debug.c')
-rw-r--r--ldso/ldso/dl-debug.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/ldso/ldso/dl-debug.c b/ldso/ldso/dl-debug.c
index 47b32316e..8a548195f 100644
--- a/ldso/ldso/dl-debug.c
+++ b/ldso/ldso/dl-debug.c
@@ -109,7 +109,7 @@ static void debug_reloc(ElfW(Sym) *symtab, char *strtab, ELF_RELOC *rpnt)
static void
internal_function
_dl_debug_lookup (const char *undef_name, struct elf_resolve *undef_map,
- const ElfW(Sym) *ref, struct sym_val *value, int type_class)
+ const ElfW(Sym) *ref, struct symbol_ref *value, int type_class)
{
#ifdef SHARED
unsigned long symbol_addr;
@@ -117,8 +117,7 @@ _dl_debug_lookup (const char *undef_name, struct elf_resolve *undef_map,
if (_dl_trace_prelink)
{
int conflict = 0;
- struct elf_resolve *tls_tpnt = NULL;
- struct sym_val val = { NULL, NULL };
+ struct symbol_ref val = { NULL, NULL };
if ((_dl_trace_prelink_map == NULL
|| _dl_trace_prelink_map == _dl_loaded_modules)
@@ -126,14 +125,14 @@ _dl_debug_lookup (const char *undef_name, struct elf_resolve *undef_map,
{
symbol_addr = (unsigned long)
_dl_find_hash(undef_name, &undef_map->symbol_scope,
- undef_map, &val, type_class, &tls_tpnt);
+ undef_map, type_class, &val);
- if (val.s != value->s || val.m != value->m)
+ if (val.sym != value->sym || val.tpnt != value->tpnt)
conflict = 1;
}
- if (value->s
- && (__builtin_expect (ELF_ST_TYPE(value->s->st_info)
+ if (value->sym
+ && (__builtin_expect (ELF_ST_TYPE(value->sym->st_info)
== STT_TLS, 0)))
type_class = 4;
@@ -146,12 +145,12 @@ _dl_debug_lookup (const char *undef_name, struct elf_resolve *undef_map,
conflict ? "conflict" : "lookup",
(size_t) undef_map->mapaddr,
(size_t) (((ElfW(Addr)) ref) - undef_map->mapaddr),
- (size_t) (value->m ? value->m->mapaddr : 0),
- (size_t) (value->s ? value->s->st_value : 0));
+ (size_t) (value->tpnt ? value->tpnt->mapaddr : 0),
+ (size_t) (value->sym ? value->sym->st_value : 0));
if (conflict)
_dl_dprintf (1, "x %x %x ",
- (size_t) (val.m ? val.m->mapaddr : 0),
- (size_t) (val.s ? val.s->st_value : 0));
+ (size_t) (val.tpnt ? val.tpnt->mapaddr : 0),
+ (size_t) (val.sym ? val.sym->st_value : 0));
_dl_dprintf (1, "/%x %s\n", type_class, undef_name);
}
}