* elf32-bfin.c (_bfinfdpic_size_got_plt): Make sure empty

.rel.plt and .plt sections are removed.
	(elf32_bfinfdpic_size_dynamic_sections): Remove empty .dynbss
	section.  Remove the duplicated removing of empty .rel.plt
	section.
This commit is contained in:
Jie Zhang 2009-09-23 08:03:02 +00:00
parent a3371076af
commit d3e32c2e1a
2 changed files with 28 additions and 26 deletions

View File

@ -1,3 +1,11 @@
2009-09-23 Jie Zhang <jie.zhang@analog.com>
* elf32-bfin.c (_bfinfdpic_size_got_plt): Make sure empty
.rel.plt and .plt sections are removed.
(elf32_bfinfdpic_size_dynamic_sections): Remove empty .dynbss
section. Remove the duplicated removing of empty .rel.plt
section.
2009-09-21 Richard Sandiford <rdsandiford@googlemail.com> 2009-09-21 Richard Sandiford <rdsandiford@googlemail.com>
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Extend previous * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Extend previous

View File

@ -4166,19 +4166,17 @@ _bfinfdpic_size_got_plt (bfd *output_bfd,
} }
if (elf_hash_table (info)->dynamic_sections_created) if (elf_hash_table (info)->dynamic_sections_created)
bfinfdpic_pltrel_section (info)->size =
gpinfop->g.lzplt / LZPLT_NORMAL_SIZE * get_elf_backend_data (output_bfd)->s->sizeof_rel;
if (bfinfdpic_pltrel_section (info)->size == 0)
bfinfdpic_pltrel_section (info)->flags |= SEC_EXCLUDE;
else
{ {
bfinfdpic_pltrel_section (info)->size = bfinfdpic_pltrel_section (info)->contents =
gpinfop->g.lzplt / LZPLT_NORMAL_SIZE * get_elf_backend_data (output_bfd)->s->sizeof_rel; (bfd_byte *) bfd_zalloc (dynobj,
if (bfinfdpic_pltrel_section (info)->size == 0) bfinfdpic_pltrel_section (info)->size);
bfinfdpic_pltrel_section (info)->flags |= SEC_EXCLUDE; if (bfinfdpic_pltrel_section (info)->contents == NULL)
else return FALSE;
{
bfinfdpic_pltrel_section (info)->contents =
(bfd_byte *) bfd_zalloc (dynobj,
bfinfdpic_pltrel_section (info)->size);
if (bfinfdpic_pltrel_section (info)->contents == NULL)
return FALSE;
}
} }
/* Add 4 bytes for every block of at most 65535 lazy PLT entries, /* Add 4 bytes for every block of at most 65535 lazy PLT entries,
@ -4215,18 +4213,15 @@ _bfinfdpic_size_got_plt (bfd *output_bfd,
/* Allocate the PLT section contents only after /* Allocate the PLT section contents only after
_bfinfdpic_assign_plt_entries has a chance to add the size of the _bfinfdpic_assign_plt_entries has a chance to add the size of the
non-lazy PLT entries. */ non-lazy PLT entries. */
if (elf_hash_table (info)->dynamic_sections_created) if (bfinfdpic_plt_section (info)->size == 0)
bfinfdpic_plt_section (info)->flags |= SEC_EXCLUDE;
else
{ {
if (bfinfdpic_plt_section (info)->size == 0) bfinfdpic_plt_section (info)->contents =
bfinfdpic_plt_section (info)->flags |= SEC_EXCLUDE; (bfd_byte *) bfd_zalloc (dynobj,
else bfinfdpic_plt_section (info)->size);
{ if (bfinfdpic_plt_section (info)->contents == NULL)
bfinfdpic_plt_section (info)->contents = return FALSE;
(bfd_byte *) bfd_zalloc (dynobj,
bfinfdpic_plt_section (info)->size);
if (bfinfdpic_plt_section (info)->contents == NULL)
return FALSE;
}
} }
return TRUE; return TRUE;
@ -4302,12 +4297,11 @@ elf32_bfinfdpic_size_dynamic_sections (bfd *output_bfd,
return FALSE; return FALSE;
} }
s = bfd_get_section_by_name (dynobj, ".dynbss");
s = bfd_get_section_by_name (dynobj, ".rela.bss");
if (s && s->size == 0) if (s && s->size == 0)
s->flags |= SEC_EXCLUDE; s->flags |= SEC_EXCLUDE;
s = bfd_get_section_by_name (dynobj, ".rel.plt"); s = bfd_get_section_by_name (dynobj, ".rela.bss");
if (s && s->size == 0) if (s && s->size == 0)
s->flags |= SEC_EXCLUDE; s->flags |= SEC_EXCLUDE;