diff options
author | Nick Clifton <nickc@redhat.com> | 2013-06-11 07:21:40 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2013-06-11 07:21:40 +0000 |
commit | 47fc0f1f211b925f68e4bb8d34b5df5479fd5596 (patch) | |
tree | ebbf5378ead1d577794dc6456d8c4a670e0c3987 /bfd/elf32-rl78.c | |
parent | c933105541d0de4b62c635755fed568582ceeacc (diff) | |
download | gdb-47fc0f1f211b925f68e4bb8d34b5df5479fd5596.zip gdb-47fc0f1f211b925f68e4bb8d34b5df5479fd5596.tar.gz gdb-47fc0f1f211b925f68e4bb8d34b5df5479fd5596.tar.bz2 |
* elf32-rl78.c (rl78_elf_finish_dynamic_sections): Onlly run
checks if the dynamic sections have been created and relaxation
has not been performed.
Diffstat (limited to 'bfd/elf32-rl78.c')
-rw-r--r-- | bfd/elf32-rl78.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c index 11d1ecc..fb31176 100644 --- a/bfd/elf32-rl78.c +++ b/bfd/elf32-rl78.c @@ -1270,24 +1270,28 @@ rl78_elf_finish_dynamic_sections (bfd *abfd ATTRIBUTE_UNUSED, bfd *dynobj; asection *splt; + if (!elf_hash_table (info)->dynamic_sections_created) + return TRUE; + /* As an extra sanity check, verify that all plt entries have been filled in. However, relaxing might have changed the relocs so that some plt entries don't get filled in, so we have to skip this check if we're relaxing. Unfortunately, check_relocs is called before relaxation. */ - if (info->relax_trip > 0) + if (info->relax_trip > 0) + return TRUE; + + if ((dynobj = elf_hash_table (info)->dynobj) != NULL + && (splt = bfd_get_linker_section (dynobj, ".plt")) != NULL) { - if ((dynobj = elf_hash_table (info)->dynobj) != NULL - && (splt = bfd_get_linker_section (dynobj, ".plt")) != NULL) + bfd_byte *contents = splt->contents; + unsigned int i, size = splt->size; + + for (i = 0; i < size; i += 4) { - bfd_byte *contents = splt->contents; - unsigned int i, size = splt->size; - for (i = 0; i < size; i += 4) - { - unsigned int x = bfd_get_32 (dynobj, contents + i); - BFD_ASSERT (x != 0); - } + unsigned int x = bfd_get_32 (dynobj, contents + i); + BFD_ASSERT (x != 0); } } |