bfd *ibfd;
asection *sec;
- if (!is_elf_hash_table (info->hash))
- return false;
+ if (ENABLE_CHECKING && !is_elf_hash_table (info->hash))
+ abort ();
for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
if ((ibfd->flags & DYNAMIC) == 0
}
if (elf_hash_table (info)->merge_info != NULL)
- _bfd_merge_sections (obfd, info, elf_hash_table (info)->merge_info,
- merge_sections_remove_hook);
+ return _bfd_merge_sections (obfd, info, elf_hash_table (info)->merge_info,
+ merge_sections_remove_hook);
return true;
}
#define bfd_elfNN_bfd_gc_sections bfd_elf_gc_sections
#endif
-#ifndef bfd_elfNN_bfd_merge_sections
-#define bfd_elfNN_bfd_merge_sections \
- _bfd_elf_merge_sections
-#endif
-
#ifndef bfd_elfNN_bfd_is_group_section
#define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section
#endif
#ifndef bfd_elfNN_bfd_final_link
#define bfd_elfNN_bfd_final_link bfd_elf_final_link
#endif
+#ifndef bfd_elfNN_bfd_merge_sections
+#define bfd_elfNN_bfd_merge_sections _bfd_elf_merge_sections
+#endif
#else /* ! defined (elf_backend_relocate_section) */
/* If no backend relocate_section routine, use the generic linker.
Note - this will prevent the port from being able to use some of
#ifndef bfd_elfNN_bfd_final_link
#define bfd_elfNN_bfd_final_link _bfd_generic_final_link
#endif
+#ifndef bfd_elfNN_bfd_merge_sections
+#define bfd_elfNN_bfd_merge_sections bfd_generic_merge_sections
+#endif
#endif /* ! defined (elf_backend_relocate_section) */
#ifndef bfd_elfNN_bfd_link_just_syms
sections, so that GCed sections are not merged, but before
assigning dynamic symbols, since removing whole input sections
is hard then. */
- bfd_merge_sections (link_info.output_bfd, &link_info);
+ if (!bfd_merge_sections (link_info.output_bfd, &link_info))
+ einfo (_("%F%P: bfd_merge_sections failed: %E\n"));
/* Look for a text section and set the readonly attribute in it. */
found = bfd_get_section_by_name (link_info.output_bfd, ".text");