aboutsummaryrefslogtreecommitdiff
path: root/elf/do-lookup.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-11 02:27:43 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-11 02:27:43 +0000
commit7670e25ad5ac4e72b3fb63ea5e99159d30054d6f (patch)
treed54424b2aa9db97bbb921daf9cb27ef49962bcfe /elf/do-lookup.h
parent7331ca4db23f3b43686be221277cb9ed6fea2511 (diff)
downloadglibc-7670e25ad5ac4e72b3fb63ea5e99159d30054d6f.zip
glibc-7670e25ad5ac4e72b3fb63ea5e99159d30054d6f.tar.gz
glibc-7670e25ad5ac4e72b3fb63ea5e99159d30054d6f.tar.bz2
Update.
* elf/do-lookup.h (FCT): st_value can be zero for STT_TLS symbols.
Diffstat (limited to 'elf/do-lookup.h')
-rw-r--r--elf/do-lookup.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/elf/do-lookup.h b/elf/do-lookup.h
index cebc2ce..3e72902 100644
--- a/elf/do-lookup.h
+++ b/elf/do-lookup.h
@@ -77,10 +77,12 @@ FCT (const char *undef_name, unsigned long int hash, const ElfW(Sym) *ref,
sym = &symtab[symidx];
assert (ELF_RTYPE_CLASS_PLT == 1);
- if (sym->st_value == 0 || /* No value. */
- /* ((type_class & ELF_RTYPE_CLASS_PLT)
- && (sym->st_shndx == SHN_UNDEF)) */
- (type_class & (sym->st_shndx == SHN_UNDEF)))
+ if ((sym->st_value == 0 /* No value. */
+#ifdef USE_TLS
+ && ELFW(ST_TYPE) (sym->st_info) != STT_TLS
+#endif
+ )
+ || (type_class & (sym->st_shndx == SHN_UNDEF)))
continue;
if (ELFW(ST_TYPE) (sym->st_info) > STT_FUNC