summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/xcoff.h11
-rw-r--r--gcc/defaults.h2
-rw-r--r--gcc/doc/tm.texi10
4 files changed, 25 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7b8cb0fca07..1b24e2d433e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-08-13 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
+ * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
+ * doc/tm.texi (Exception Region Output): Document it.
+
2001-08-13 Geoffrey Keating <geoffk@redhat.com>
* config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
@@ -226,7 +232,7 @@ Mon Aug 13 02:27:39 CEST 2001 Jan Hubicka <jh@suse.cz>
* s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
Clean up code: add missing comments and prototypes, fix warnings,
- remove obsolete code, fix spacing to conform to coding style.
+ remove obsolete code, fix spacing to conform to coding style.
2001-08-11 Ulrich Weigand <uweigand@de.ibm.com>
diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h
index f7d6c5f39ad..c120e643c94 100644
--- a/gcc/config/rs6000/xcoff.h
+++ b/gcc/config/rs6000/xcoff.h
@@ -492,8 +492,11 @@ toc_section () \
/* Switch into a generic section. */
#define TARGET_ASM_NAMED_SECTION xcoff_asm_named_section
-/* Define the name of the section to use for the exception tables.
- TODO: test and see if we can use read_only_data_section, if so,
- remove this. */
-
+/* Define the name of the section to use for the EH language specific
+ data areas (.gcc_except_table on most other systems). */
#define EXCEPTION_SECTION data_section
+
+/* Define to prevent DWARF2 unwind info in the data section rather
+ than in the .eh_frame section. We do this because the AIX linker
+ would otherwise garbage collect these sections. */
+#define EH_FRAME_IN_DATA_SECTION 1
diff --git a/gcc/defaults.h b/gcc/defaults.h
index d20bc28f6ff..14635b3e2c9 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -211,7 +211,7 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
/* If we have named sections, and we're using crtstuff to run ctors,
use them for registering eh frame information. */
-#if defined (TARGET_ASM_NAMED_SECTION)
+#if defined (TARGET_ASM_NAMED_SECTION) && !defined(EH_FRAME_IN_DATA_SECTION)
#ifndef EH_FRAME_SECTION_NAME
#define EH_FRAME_SECTION_NAME ".eh_frame"
#endif
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index caf0a026578..538888b16d4 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -7068,6 +7068,16 @@ provide a default definition if the target supports named sections.
You should define this symbol if your target supports DWARF 2 frame
unwind information and the default definition does not work.
+@findex EH_FRAME_IN_DATA_SECTION
+@item EH_FRAME_IN_DATA_SECTION
+If defined, DWARF 2 frame unwind information will be placed in the
+data section even though the target supports named sections. This
+might be necessary, for instance, if the system linker does garbage
+collection and sections cannot be marked as not to be collected.
+
+Do not define this macro unless @code{TARGET_ASM_NAMED_SECTION} is
+also defined.
+
@findex OMIT_EH_TABLE
@item OMIT_EH_TABLE ()
A C expression that is nonzero if the normal exception table output