OSDN Git Service

* config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Aug 2001 21:14:01 +0000 (21:14 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Aug 2001 21:14:01 +0000 (21:14 +0000)
        * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
        * doc/tm.texi (Exception Region Output): Document it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44869 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 7b8cb0f..1b24e2d 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 f7d6c5f..c120e64 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 d20bc28..14635b3 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 caf0a02..538888b 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