aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2003-10-27 17:33:44 +0000
committerDaniel Jacobowitz <drow@false.org>2003-10-27 17:33:44 +0000
commit35a0f415809e38b60480fef81023ad22c3d13794 (patch)
tree1fd5ac12c85b26a6e4c8d343eb798db5c704824f /bfd
parent931758afc4b86ded4b4574c7c119a60f853641da (diff)
downloadfsf-binutils-gdb-35a0f415809e38b60480fef81023ad22c3d13794.zip
fsf-binutils-gdb-35a0f415809e38b60480fef81023ad22c3d13794.tar.gz
fsf-binutils-gdb-35a0f415809e38b60480fef81023ad22c3d13794.tar.bz2
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Never skip dynamic
objects.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.h31
2 files changed, 24 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index df6cb77..83b3046 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-27 Daniel Jacobowitz <drow@mvista.com>
+
+ * elf32-arm.h (elf32_arm_merge_private_bfd_data): Never skip dynamic
+ objects.
+
2003-10-14 Richard Sandiford <rsandifo@redhat.com>
* elfxx-mips.c (mips_elf_create_got_section): Initialize global_gotno.
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))