diff options
author | Daniel Jacobowitz <drow@false.org> | 2003-10-27 17:33:44 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2003-10-27 17:33:44 +0000 |
commit | 35a0f415809e38b60480fef81023ad22c3d13794 (patch) | |
tree | 1fd5ac12c85b26a6e4c8d343eb798db5c704824f /bfd/elf32-arm.h | |
parent | 931758afc4b86ded4b4574c7c119a60f853641da (diff) | |
download | gdb-35a0f415809e38b60480fef81023ad22c3d13794.zip gdb-35a0f415809e38b60480fef81023ad22c3d13794.tar.gz gdb-35a0f415809e38b60480fef81023ad22c3d13794.tar.bz2 |
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Never skip dynamic
objects.
Diffstat (limited to 'bfd/elf32-arm.h')
-rw-r--r-- | bfd/elf32-arm.h | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index 15eb478..1049613 100644 --- a/bfd/elf32-arm.h +++ b/bfd/elf32-arm.h @@ -2217,7 +2217,6 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd) flagword out_flags; flagword in_flags; bfd_boolean flags_compatible = TRUE; - bfd_boolean null_input_bfd = TRUE; asection *sec; /* Check if we have the same endianess. */ @@ -2268,21 +2267,29 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd) if (in_flags == out_flags) return TRUE; - /* Check to see if the input BFD actually contains any sections. - If not, its flags may not have been initialised either, but it cannot - actually cause any incompatibility. */ - for (sec = ibfd->sections; sec != NULL; sec = sec->next) + /* Check to see if the input BFD actually contains any sections. If + not, its flags may not have been initialised either, but it + cannot actually cause any incompatibility. Do not short-circuit + dynamic objects; their section list may be emptied by + elf_link_add_object_symbols. */ + + if (!(ibfd->flags & DYNAMIC)) { - /* Ignore synthetic glue sections. */ - if (strcmp (sec->name, ".glue_7") - && strcmp (sec->name, ".glue_7t")) + bfd_boolean null_input_bfd = TRUE; + + for (sec = ibfd->sections; sec != NULL; sec = sec->next) { - null_input_bfd = FALSE; - break; + /* Ignore synthetic glue sections. */ + if (strcmp (sec->name, ".glue_7") + && strcmp (sec->name, ".glue_7t")) + { + null_input_bfd = FALSE; + break; + } } + if (null_input_bfd) + return TRUE; } - if (null_input_bfd) - return TRUE; /* Complain about various flag mismatches. */ if (EF_ARM_EABI_VERSION (in_flags) != EF_ARM_EABI_VERSION (out_flags)) |