diff options
author | Nick Clifton <nickc@redhat.com> | 2009-02-12 15:06:55 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2009-02-12 15:06:55 +0000 |
commit | 2c2b4ed43a10475ae8707c032bcf9acdf4f1b0a8 (patch) | |
tree | be4b548ed5aea8bcc62e1fb7f56792bcd69d3978 /bfd | |
parent | d401d98a57f2e2d30befd5dbe479aaa2d5e83deb (diff) | |
download | ppe42-binutils-2c2b4ed43a10475ae8707c032bcf9acdf4f1b0a8.tar.gz ppe42-binutils-2c2b4ed43a10475ae8707c032bcf9acdf4f1b0a8.zip |
PR 9827
* elflink.c (bfd_elf_final_link): When counting the relocations,
if the header size has not been set yet then assume that it will
match the output section's reloc type.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elflink.c | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9343b3466b..f0515a2997 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2009-02-12 Nick Clifton <nickc@redhat.com> + + PR 9827 + * elflink.c (bfd_elf_final_link): When counting the relocations, + if the header size has not been set yet then assume that it will + match the output section's reloc type. + 2009-02-12 Nathan Sidwell <nathan@codesourcery.com> * elf32-mips.c (mips_elf_final_gp): Don't add 0x4000 offset for diff --git a/bfd/elflink.c b/bfd/elflink.c index 8685a2fe18..d0e4534894 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -10228,8 +10228,13 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) bfd_size_type entsize1; entsize1 = esdi->rel_hdr.sh_entsize; - BFD_ASSERT (entsize1 == bed->s->sizeof_rel - || entsize1 == bed->s->sizeof_rela); + /* PR 9827: If the header size has not been set yet then + assume that it will match the output section's reloc type. */ + if (entsize1 == 0) + entsize1 = o->use_rela_p ? bed->s->sizeof_rela : bed->s->sizeof_rel; + else + BFD_ASSERT (entsize1 == bed->s->sizeof_rel + || entsize1 == bed->s->sizeof_rela); same_size = !o->use_rela_p == (entsize1 == bed->s->sizeof_rel); if (!same_size) |