diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2002-03-04 20:40:48 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2002-03-04 20:40:48 +0000 |
commit | e9682144c14fc809af72bd6c0b8c69731d38679c (patch) | |
tree | e7c59db32815cdf747c2f17ca26127ed2881d8c0 /gas | |
parent | b5090659de579b6a000367292b6a066dff022f5e (diff) | |
download | gdb-e9682144c14fc809af72bd6c0b8c69731d38679c.zip gdb-e9682144c14fc809af72bd6c0b8c69731d38679c.tar.gz gdb-e9682144c14fc809af72bd6c0b8c69731d38679c.tar.bz2 |
2002-03-04 H.J. Lu <hjl@gnu.org>
* 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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 8 | ||||
-rw-r--r-- | gas/config/obj-elf.c | 21 | ||||
-rw-r--r-- | gas/config/tc-ia64.h | 2 |
3 files changed, 29 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4eea491..221c592 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2002-03-04 H.J. Lu <hjl@gnu.org> + + * 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 <jakub@redhat.com> * 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 dcbff5d..0597eb7 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 53dab86..7b03e26 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 }, |