* config/obj-elf.c (special_sections): Use correct types for init
array sections. (obj_elf_change_section): Don't mess with init array section type.
This commit is contained in:
parent
8ec413174a
commit
7ed1d3463e
2 changed files with 16 additions and 19 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2002-10-22 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* config/obj-elf.c (special_sections): Use correct types for init
|
||||||
|
array sections.
|
||||||
|
(obj_elf_change_section): Don't mess with init array section type.
|
||||||
|
|
||||||
2002-10-21 Richard Sandiford <rsandifo@redhat.com>
|
2002-10-21 Richard Sandiford <rsandifo@redhat.com>
|
||||||
|
|
||||||
* config/tc-mips.c (mips_need_elf_addend_fixup): Return true
|
* config/tc-mips.c (mips_need_elf_addend_fixup): Return true
|
||||||
|
|
|
@ -617,27 +617,9 @@ static struct special_section const special_sections[] =
|
||||||
{ ".tbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
|
{ ".tbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
|
||||||
{ ".tdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
|
{ ".tdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
|
||||||
{ ".text", SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
|
{ ".text", SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
|
||||||
#if 0
|
|
||||||
/* FIXME: The current gcc, as of 2002-03-03, will emit
|
|
||||||
|
|
||||||
.section .init_array,"aw",@progbits
|
|
||||||
|
|
||||||
for __attribute__ ((section (".init_array"))). "@progbits" marks
|
|
||||||
the incorrect section type. For now, we make them with
|
|
||||||
SHT_PROGBITS. BFD will fix the section type. Gcc should be changed
|
|
||||||
to emit
|
|
||||||
|
|
||||||
.section .init_array
|
|
||||||
|
|
||||||
*/
|
|
||||||
{ ".init_array",SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE },
|
{ ".init_array",SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE },
|
||||||
{ ".fini_array",SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE },
|
{ ".fini_array",SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE },
|
||||||
{ ".preinit_array",SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
|
{ ".preinit_array",SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
|
||||||
#else
|
|
||||||
{ ".init_array",SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
|
|
||||||
{ ".fini_array",SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
|
|
||||||
{ ".preinit_array",SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ELF_TC_SPECIAL_SECTIONS
|
#ifdef ELF_TC_SPECIAL_SECTIONS
|
||||||
ELF_TC_SPECIAL_SECTIONS
|
ELF_TC_SPECIAL_SECTIONS
|
||||||
|
@ -707,7 +689,16 @@ obj_elf_change_section (name, type, attr, entsize, group_name, linkonce, push)
|
||||||
type = special_sections[i].type;
|
type = special_sections[i].type;
|
||||||
else if (type != special_sections[i].type)
|
else if (type != special_sections[i].type)
|
||||||
{
|
{
|
||||||
if (old_sec == NULL)
|
if (old_sec == NULL
|
||||||
|
/* FIXME: gcc, as of 2002-10-22, will emit
|
||||||
|
|
||||||
|
.section .init_array,"aw",@progbits
|
||||||
|
|
||||||
|
for __attribute__ ((section (".init_array"))).
|
||||||
|
"@progbits" is incorrect. */
|
||||||
|
&& special_sections[i].type != SHT_INIT_ARRAY
|
||||||
|
&& special_sections[i].type != SHT_FINI_ARRAY
|
||||||
|
&& special_sections[i].type != SHT_PREINIT_ARRAY)
|
||||||
{
|
{
|
||||||
as_warn (_("setting incorrect section type for %s"), name);
|
as_warn (_("setting incorrect section type for %s"), name);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue