From e9682144c14fc809af72bd6c0b8c69731d38679c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 4 Mar 2002 20:40:48 +0000 Subject: [PATCH] 2002-03-04 H.J. Lu * config/obj-elf.c (special_section): Add .init_array, .fini_array and .preinit_array. * config/tc-ia64.h (ELF_TC_SPECIAL_SECTIONS): Remove .init_array and .fini_array. --- gas/ChangeLog | 8 ++++++++ gas/config/obj-elf.c | 21 +++++++++++++++++++++ gas/config/tc-ia64.h | 2 -- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 4eea4919e8..221c592f3e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2002-03-04 H.J. Lu + + * config/obj-elf.c (special_section): Add .init_array, + .fini_array and .preinit_array. + + * config/tc-ia64.h (ELF_TC_SPECIAL_SECTIONS): Remove + .init_array and .fini_array. + 2002-03-01 Jakub Jelinek * config/obj-elf.c (elf_copy_symbol_attributes): Don't copy diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index dcbff5d8a2..0597eb783e 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -595,6 +595,27 @@ static struct special_section const special_sections[] = { ".rodata", SHT_PROGBITS, SHF_ALLOC }, { ".rodata1", SHT_PROGBITS, SHF_ALLOC }, { ".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 }, + { ".fini_array",SHT_FINI_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 ELF_TC_SPECIAL_SECTIONS diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h index 53dab86447..7b03e26b3f 100644 --- a/gas/config/tc-ia64.h +++ b/gas/config/tc-ia64.h @@ -124,8 +124,6 @@ extern void ia64_after_parse_args PARAMS ((void)); #define WORKING_DOT_WORD /* don't do broken word processing for now */ #define ELF_TC_SPECIAL_SECTIONS \ -{ ".init_array",SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE }, \ -{ ".fini_array",SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE }, \ { ".sbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT }, \ { ".sdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT }, -- 2.34.1