> > Roman I Khimov wrote: > > Fixes dltest with NPTL. > > > > Signed-off-by: Roman I Khimov <[email protected]> > > --- > > ldso/ldso/x86_64/elfinterp.c | 10 ++++++++-- > > 1 files changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/ldso/ldso/x86_64/elfinterp.c b/ldso/ldso/x86_64/elfinterp.c > > index 54528d3..ec53c48 100644 > > --- a/ldso/ldso/x86_64/elfinterp.c > > +++ b/ldso/ldso/x86_64/elfinterp.c > > @@ -172,7 +172,9 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf > > *scope, > > symbol_addr = 0; > > symname = strtab + sym->st_name; > > > > - if (symtab_index) { > > + if (symtab_index && > > + (ELF64_ST_VISIBILITY(symtab[symtab_index].st_other) > > + != STV_PROTECTED)) { > > symbol_addr = (ElfW(Addr))_dl_find_hash(symname, scope, tpnt, > > elf_machine_type_class(reloc_type), &tls_tpnt); > > /* > > @@ -189,7 +191,11 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf > > *scope, > > /* Relocs against STN_UNDEF are usually treated as using a > > * symbol value of zero, and using the module containing the > > * reloc itself. */ > > - symbol_addr = sym->st_value; > > + if (symtab_index) > > + symbol_addr = DL_FIND_HASH_VALUE(tpnt, > > elf_machine_type_class(reloc_type), > > + sym); > > + else > > + symbol_addr = sym->st_value; > > tls_tpnt = tpnt; > > } > > > > Joakim had a clean up patch for the above construct. See patch 1/2 of: > http://lists.uclibc.org/pipermail/uclibc/2010-April/043840.html > (patch 2/2 there is wrong). See also rest of the thread. > > For some reason that did not got merged yet. Austin, care to merge > that?
I am am not convinced this is the way to go, need to find some time to think about this some more. Would be great if I could get a day or two to get my head together. Jocke _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
