mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
* elf32-rl78.c (rl78_elf_finish_dynamic_sections): Onlly run
checks if the dynamic sections have been created and relaxation has not been performed.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2013-06-11 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
* elf32-rl78.c (rl78_elf_finish_dynamic_sections): Onlly run
|
||||||
|
checks if the dynamic sections have been created and relaxation
|
||||||
|
has not been performed.
|
||||||
|
|
||||||
2013-06-07 Will Newton <will.newton@linaro.org>
|
2013-06-07 Will Newton <will.newton@linaro.org>
|
||||||
|
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
@ -1270,24 +1270,28 @@ rl78_elf_finish_dynamic_sections (bfd *abfd ATTRIBUTE_UNUSED,
|
|||||||
bfd *dynobj;
|
bfd *dynobj;
|
||||||
asection *splt;
|
asection *splt;
|
||||||
|
|
||||||
|
if (!elf_hash_table (info)->dynamic_sections_created)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
/* As an extra sanity check, verify that all plt entries have been
|
/* As an extra sanity check, verify that all plt entries have been
|
||||||
filled in. However, relaxing might have changed the relocs so
|
filled in. However, relaxing might have changed the relocs so
|
||||||
that some plt entries don't get filled in, so we have to skip
|
that some plt entries don't get filled in, so we have to skip
|
||||||
this check if we're relaxing. Unfortunately, check_relocs is
|
this check if we're relaxing. Unfortunately, check_relocs is
|
||||||
called before relaxation. */
|
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
|
bfd_byte *contents = splt->contents;
|
||||||
&& (splt = bfd_get_linker_section (dynobj, ".plt")) != NULL)
|
unsigned int i, size = splt->size;
|
||||||
|
|
||||||
|
for (i = 0; i < size; i += 4)
|
||||||
{
|
{
|
||||||
bfd_byte *contents = splt->contents;
|
unsigned int x = bfd_get_32 (dynobj, contents + i);
|
||||||
unsigned int i, size = splt->size;
|
BFD_ASSERT (x != 0);
|
||||||
for (i = 0; i < size; i += 4)
|
|
||||||
{
|
|
||||||
unsigned int x = bfd_get_32 (dynobj, contents + i);
|
|
||||||
BFD_ASSERT (x != 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user