This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Patch 1/5] ld for ia64 VMS: Minor tweaks in elflink.c
- From: Tristan Gingold <gingold at adacore dot com>
- To: binutils Development <binutils at sourceware dot org>
- Date: Mon, 19 Mar 2012 12:03:39 +0100
- Subject: [Patch 1/5] ld for ia64 VMS: Minor tweaks in elflink.c
- References: <4AF8B215-7277-48D2-9476-82E4F2746404@adacore.com>
Hi,
on VMS we have the dynamic sections, but no .dynsym. So we need to adjust a few tests in elflink.c
Tristan.
bfd/
2012-03-19 Tristan Gingold <gingold@adacore.com>
* elflink.c (elf_link_output_extsym): Add a guard.
(bfd_elf_final_link): Remove assertion.
(bfd_elf_final_link): Add a guard.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 7f9ec60..568cbee 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -8908,7 +8908,8 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data)
/* If this symbol should be put in the .dynsym section, then put it
there now. We already know the symbol index. We also fill in
the entry in the .hash section. */
- if (h->dynindx != -1
+ if (finfo->dynsym_sec != NULL
+ && h->dynindx != -1
&& elf_hash_table (finfo->info)->dynamic_sections_created)
{
bfd_byte *esym;
@@ -10316,7 +10317,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
{
finfo.dynsym_sec = bfd_get_section_by_name (dynobj, ".dynsym");
finfo.hash_sec = bfd_get_section_by_name (dynobj, ".hash");
- BFD_ASSERT (finfo.dynsym_sec != NULL);
+ /* Note that dynsym_sec can be NULL (on VMS). */
finfo.symver_sec = bfd_get_section_by_name (dynobj, ".gnu.version");
/* Note that it is OK if symver_sec is NULL. */
}
@@ -10836,6 +10837,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
symtab_hdr->sh_info = bfd_get_symcount (abfd);
if (dynamic
+ && finfo.dynsym_sec
&& finfo.dynsym_sec->output_section != bfd_abs_section_ptr)
{
Elf_Internal_Sym sym;