diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-12-18 12:15:35 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2001-12-18 12:15:35 +0000 |
commit | 6b9b879a0267f1d994d3d4fbdcbcc2d6643498df (patch) | |
tree | 2a1339c63dc23a0489e64506aa735f71abf3a2c8 /bfd | |
parent | b667df2e28e04351ea2ee5b6fd32b51d4a302130 (diff) | |
download | gdb-6b9b879a0267f1d994d3d4fbdcbcc2d6643498df.zip gdb-6b9b879a0267f1d994d3d4fbdcbcc2d6643498df.tar.gz gdb-6b9b879a0267f1d994d3d4fbdcbcc2d6643498df.tar.bz2 |
* ldgram.y (vers_node): Support anonymous version tags.
* ldlang.c (lang_register_vers_node): Ensure anonymous version
tag is not defined together with non-anonymous versions.
* ld.texinfo: Document it.
* elflink.h (size_dynamic_sections): Skip anonymous version tag.
(elf_link_assign_sym_version): Don't count anonymous version tag.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.h | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e760aa3..723bfbf 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2001-12-18 Jakub Jelinek <jakub@redhat.com> + * elflink.h (size_dynamic_sections): Skip anonymous version tag. + (elf_link_assign_sym_version): Don't count anonymous version tag. + +2001-12-18 Jakub Jelinek <jakub@redhat.com> + * elf-eh-frame.c (struct cie): Add make_lsda_relative. (struct eh_cie_fde): Add lsda_encoding, lsda_offset, make_lsda_relative. diff --git a/bfd/elflink.h b/bfd/elflink.h index f5eb277..0087260 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -3246,6 +3246,10 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, just linking a regular application. */ verdefs = asvinfo.verdefs; + /* Skip anonymous version tag. */ + if (verdefs != NULL && verdefs->vernum == 0) + verdefs = verdefs->next; + if (verdefs == NULL) _bfd_strip_section_from_output (info, s); else @@ -4307,6 +4311,9 @@ elf_link_assign_sym_version (h, data) t->used = true; version_index = 1; + /* Don't count anonymous version tag. */ + if (sinfo->verdefs != NULL && sinfo->verdefs->vernum == 0) + version_index = 0; for (pp = &sinfo->verdefs; *pp != NULL; pp = &(*pp)->next) ++version_index; t->vernum = version_index; |