This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! On most arches this means no change (well, the first hunk means that STT_TLS symbols will not be looked at, as they don't represent addresses in the shared library or binary), but on IA-64/HPPA this matters. 2004-10-19 Jakub Jelinek <jakub@redhat.com> * elf/dl-addr.c (_dl_addr): Don't look at STT_TLS symbols. Use DL_SYMBOL_ADDRESS to set dli_saddr. --- libc/elf/dl-addr.c.jj 2004-10-15 23:08:33.000000000 +0200 +++ libc/elf/dl-addr.c 2004-10-19 10:10:31.000000000 +0200 @@ -92,6 +92,9 @@ _dl_addr (const void *address, Dl_info * dynamic symbol table!! */ for (matchsym = NULL; (void *) symtab < (void *) symtabend; ++symtab) if (addr >= match->l_addr + symtab->st_value +#if defined USE_TLS + && ELFW(ST_TYPE) (symtab->st_info) != STT_TLS +#endif && ((symtab->st_size == 0 && addr == match->l_addr + symtab->st_value) || addr < match->l_addr + symtab->st_value + symtab->st_size) @@ -110,8 +113,10 @@ _dl_addr (const void *address, Dl_info * { /* We found a symbol close by. Fill in its name and exact address. */ + lookup_t matchl = LOOKUP_VALUE (match); + info->dli_sname = strtab + matchsym->st_name; - info->dli_saddr = (void *) (match->l_addr + matchsym->st_value); + info->dli_saddr = DL_SYMBOL_ADDRESS (matchl, matchsym); } else { Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |