aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2003-04-28 16:58:01 +0000
committerH.J. Lu <hjl.tools@gmail.com>2003-04-28 16:58:01 +0000
commitf006af20ee725b876a4746ea13249c719b865bb4 (patch)
treea4cfbde16cfb96d273376ac2a46f227b3ddcf25c /bfd/elflink.h
parentd7a27068cd16735b9fbae68775ea7e6cd870ac13 (diff)
downloadgdb-f006af20ee725b876a4746ea13249c719b865bb4.zip
gdb-f006af20ee725b876a4746ea13249c719b865bb4.tar.gz
gdb-f006af20ee725b876a4746ea13249c719b865bb4.tar.bz2
bfd/
2003-04-28 H.J. Lu <hjl@gnu.org> * elflink.h (elf_merge_symbol): Call elf_backend_copy_indirect_symbol to copy any information related to dynamic linking when we flip the indirection. ld/testsuite/ 2003-04-28 H.J. Lu <hjl@gnu.org> * ld-elfvers/vers.exp (picflag): Set PIC flag for compiler. (build_vers_lib): Support PIC. (build_vers_lib_no_pic): New. Change all calls to build_vers_lib to build_vers_lib_no_pic. (build_vers_lib_pic): New. Add tests vers26a, vers26b1, vers26b2 and vers26b3 for versioned definition vs. normal definition in different files. * ld-elfvers/vers26a.c: New file. * ld-elfvers/vers26a.dsym: Likewise. * ld-elfvers/vers26a.map: Likewise. * ld-elfvers/vers26a.ver: Likewise. * ld-elfvers/vers26b.c: Likewise. * ld-elfvers/vers26b.dsym: New empty file. * ld-elfvers/vers26b.ver: Likewise.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r--bfd/elflink.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 5889e1c..61505e0 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -909,10 +909,12 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash, skip,
/* Handle the case where we had a versioned symbol in a dynamic
library and now find a definition in a normal object. In this
case, we make the versioned symbol point to the normal one. */
+ struct elf_backend_data *bed = get_elf_backend_data (abfd);
flip->root.type = h->root.type;
- flip->root.u.undef.abfd = h->root.u.undef.abfd;
h->root.type = bfd_link_hash_indirect;
h->root.u.i.link = (struct bfd_link_hash_entry *) flip;
+ (*bed->elf_backend_copy_indirect_symbol) (bed, flip, h);
+ flip->root.u.undef.abfd = h->root.u.undef.abfd;
if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC)
{
h->elf_link_hash_flags &= ~ELF_LINK_HASH_DEF_DYNAMIC;