aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/obj-elf.c21
-rw-r--r--gas/config/tc-ia64.h2
2 files changed, 21 insertions, 2 deletions
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 },