* elflink.h (elf_bfd_final_link): Improve error handling for missing
authorJeff Law <law@redhat.com>
Wed, 12 Jun 2002 18:14:05 +0000 (18:14 +0000)
committerJeff Law <law@redhat.com>
Wed, 12 Jun 2002 18:14:05 +0000 (18:14 +0000)
dynamic sections.

bfd/ChangeLog
bfd/elflink.h

index 907ba4995d8a6e8d6b7081f09efce05a1c179f02..7ba8476c65b2fd61821851d5e514861fdeb67ec4 100644 (file)
@@ -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.
index 30ba4c146e821c5f410953b563d2f587114b971a..9ba13fd0a2893916f00988d46e840c657dbfb7c0 100644 (file)
@@ -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;