diff options
author | Alexander Kabaev <kan@FreeBSD.org> | 2005-12-18 19:43:33 +0000 |
---|---|---|
committer | Alexander Kabaev <kan@FreeBSD.org> | 2005-12-18 19:43:33 +0000 |
commit | 0eb88f20298d056bf09b52ec2d84d3662b8fd152 (patch) | |
tree | 0d48e9fa3e1a8d20651242fc849efd6ba9f69557 /libexec/rtld-elf/amd64 | |
parent | 9d51867579ac97c7da8600ce09faf79a6dad5ca6 (diff) | |
download | src-test2-0eb88f20298d056bf09b52ec2d84d3662b8fd152.tar.gz src-test2-0eb88f20298d056bf09b52ec2d84d3662b8fd152.zip |
Notes
Diffstat (limited to 'libexec/rtld-elf/amd64')
-rw-r--r-- | libexec/rtld-elf/amd64/reloc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libexec/rtld-elf/amd64/reloc.c b/libexec/rtld-elf/amd64/reloc.c index 72977d68dd92..8f25278c0556 100644 --- a/libexec/rtld-elf/amd64/reloc.c +++ b/libexec/rtld-elf/amd64/reloc.c @@ -74,15 +74,17 @@ do_copy_relocations(Obj_Entry *dstobj) const void *srcaddr; const Elf_Sym *srcsym; Obj_Entry *srcobj; + const Ver_Entry *ve; dstaddr = (void *) (dstobj->relocbase + rela->r_offset); dstsym = dstobj->symtab + ELF_R_SYM(rela->r_info); name = dstobj->strtab + dstsym->st_name; hash = elf_hash(name); size = dstsym->st_size; + ve = fetch_ventry(dstobj, ELF_R_SYM(rela->r_info)); for (srcobj = dstobj->next; srcobj != NULL; srcobj = srcobj->next) - if ((srcsym = symlook_obj(name, hash, srcobj, false)) != NULL) + if ((srcsym = symlook_obj(name, hash, srcobj, ve, 0)) != NULL) break; if (srcobj == NULL) { |