xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
authorRichard Henderson <rth@gcc.gnu.org>
Mon, 13 Aug 2001 21:14:01 +0000 (14:14 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 13 Aug 2001 21:14:01 +0000 (14:14 -0700)
        * 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.

From-SVN: r44869

gcc/ChangeLog
gcc/config/rs6000/xcoff.h
gcc/defaults.h
gcc/doc/tm.texi

index 7b8cb0fca074d7dbd6d91d8e5b514be61f636578..1b24e2d433ec467e3f27de6433adc0142289204c 100644 (file)
@@ -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>
 
index f7d6c5f39adf5a90801cb6a4ef46f8881ca495ed..c120e643c9472dc5a8348c58fb5aba5002b9a744 100644 (file)
@@ -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
index d20bc28f6ffadd86029f6fc0a4897a17b881d88a..14635b3e2c91d6681d6dd3a69cbe0d924252ff51 100644 (file)
@@ -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
index caf0a026578d98254f11c1da8e7b08bd91435857..538888b16d496927d882913661be7b0ef6aecdaa 100644 (file)
@@ -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