diff options
author | Jeff Law <law@redhat.com> | 2002-06-12 18:14:05 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 2002-06-12 18:14:05 +0000 |
commit | 2cb69dd3614423dfe81f0a1e52a70ba9c2dd4863 (patch) | |
tree | 9e3d43d7c824831af8cc535e7c4531087524f9be /bfd | |
parent | 3db4b612459073a0949b77472ff2eb7473d32ec2 (diff) | |
download | gdb-2cb69dd3614423dfe81f0a1e52a70ba9c2dd4863.zip gdb-2cb69dd3614423dfe81f0a1e52a70ba9c2dd4863.tar.gz gdb-2cb69dd3614423dfe81f0a1e52a70ba9c2dd4863.tar.bz2 |
* elflink.h (elf_bfd_final_link): Improve error handling for missing
dynamic sections.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 3 | ||||
-rw-r--r-- | bfd/elflink.h | 16 |
2 files changed, 17 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 907ba49..7ba8476 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,8 @@ 2002-06-12 John David Anglin <dave@hiauly1.hia.nrc.ca> + * elflink.h (elf_bfd_final_link): Improve error handling for missing + dynamic sections. + * elf64-hppa.c (allocate_global_data_opd): We don't need an opd entry for a symbol that has no output section. (allocate_dynrel_entries): Correct comment. diff --git a/bfd/elflink.h b/bfd/elflink.h index 30ba4c1..9ba13fd 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -5692,7 +5692,13 @@ elf_bfd_final_link (abfd, info) name = ".fini_array"; get_size: o = bfd_get_section_by_name (abfd, name); - BFD_ASSERT (o != NULL); + if (o == NULL) + { + (*_bfd_error_handler) + (_("%s: could not find output section %s"), + bfd_get_filename (abfd), name); + goto error_return; + } if (o->_raw_size == 0) (*_bfd_error_handler) (_("warning: %s section has zero size"), name); @@ -5729,7 +5735,13 @@ elf_bfd_final_link (abfd, info) name = ".gnu.version"; get_vma: o = bfd_get_section_by_name (abfd, name); - BFD_ASSERT (o != NULL); + if (o == NULL) + { + (*_bfd_error_handler) + (_("%s: could not find output section %s"), + bfd_get_filename (abfd), name); + goto error_return; + } dyn.d_un.d_ptr = o->vma; elf_swap_dyn_out (dynobj, &dyn, dyncon); break; |