aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/obj-elf.c6
-rw-r--r--gas/config/tc-ia64.c6
-rw-r--r--gas/doc/as.texinfo8
4 files changed, 22 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 13d53fd..dcfe99b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-08 Paul Brook <paul@codesourcery.com>
+
+ * config/obj-elf.c (obj_elf_section_type): Handle init_array,
+ fini_array and preinit_array section types.
+ * config/tc-ia64.c (ia64_elf_section_type): Remove init_array
+ and fini_array.
+ * doc/as.texinfo: Document extra section types.
+
2004-09-02 Mark Mitchell <mark@codesourcery.com>
* Makefile.am (TARG_ENV_HFILES): Add te-symbian.h.
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 94f53b1..84f5a84 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -771,6 +771,12 @@ obj_elf_section_type (char *str, size_t len)
return SHT_NOBITS;
if (len == 4 && strncmp (str, "note", 4) == 0)
return SHT_NOTE;
+ if (len == 10 && strncmp (str, "init_array", 10) == 0)
+ return SHT_INIT_ARRAY;
+ if (len == 10 && strncmp (str, "fini_array", 10) == 0)
+ return SHT_FINI_ARRAY;
+ if (len == 13 && strncmp (str, "preinit_array", 13) == 0)
+ return SHT_PREINIT_ARRAY;
#ifdef md_elf_section_type
{
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 1d43e77..b2e599f 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -996,12 +996,6 @@ ia64_elf_section_type (str, len)
if (STREQ ("unwind"))
return SHT_IA_64_UNWIND;
- if (STREQ ("init_array"))
- return SHT_INIT_ARRAY;
-
- if (STREQ ("fini_array"))
- return SHT_FINI_ARRAY;
-
return -1;
#undef STREQ
}
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 89868c2..23de55f 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -5291,8 +5291,16 @@ section contains data
section does not contain data (i.e., section only occupies space)
@item @@note
section contains data which is used by things other than the program
+@item @@init_array
+section contains an array of pointers to init functions
+@item @@fini_array
+section contains an array of pointers to finish functions
+@item @@preinit_array
+section contains an array of pointers to pre-init functions
@end table
+Many targets only support the first three section types.
+
Note on targets where the @code{@@} character is the start of a comment (eg
ARM) then another character is used instead. For example the ARM port uses the
@code{%} character.