OSDN Git Service

* dwarf2out.c (default_eh_frame_section): Split into ...
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Sep 2003 22:07:39 +0000 (22:07 +0000)
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Sep 2003 22:07:39 +0000 (22:07 +0000)
(named_section_eh_frame_section, collect2_eh_frame_section): ... new
functions.
* output.h (named_section_eh_frame_section): Declare.
(collect2_eh_frame_section): Likewise.

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

gcc/ChangeLog
gcc/dwarf2out.c
gcc/output.h

index 1730a5f..2b6facf 100644 (file)
@@ -1,3 +1,11 @@
+2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * dwarf2out.c (default_eh_frame_section): Split into ...
+       (named_section_eh_frame_section, collect2_eh_frame_section): ... new
+       functions. 
+       * output.h (named_section_eh_frame_section): Declare.
+       (collect2_eh_frame_section): Likewise.
+
 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
 
        * real.c (real_sqrt): Use get_canonical_qnan directly.
index 6ff9079..f22ca50 100644 (file)
@@ -110,12 +110,12 @@ dwarf2out_do_frame (void)
 #define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT)
 #endif
 
-/* Default version of targetm.eh_frame_section.  Note this must appear
-   outside the DWARF2_DEBUGGING_INFO || DWARF2_UNWIND_INFO macro
-   guards.  */
+/* Various versions of targetm.eh_frame_section.  Note these must appear
+   outside the DWARF2_DEBUGGING_INFO || DWARF2_UNWIND_INFO macro guards.  */
 
+/* Version of targetm.eh_frame_section for systems with named sections.  */ 
 void
-default_eh_frame_section (void)
+named_section_eh_frame_section (void)
 {
 #ifdef EH_FRAME_SECTION_NAME
 #ifdef HAVE_LD_RO_RW_SECTION_MIXING
@@ -136,13 +136,29 @@ default_eh_frame_section (void)
 #else
   named_section_flags (EH_FRAME_SECTION_NAME, SECTION_WRITE);
 #endif
-#else
+#endif
+}
+
+/* Version of targetm.eh_frame_section for systems using collect2.  */ 
+void
+collect2_eh_frame_section (void)
+{
   tree label = get_file_function_name ('F');
 
   data_section ();
   ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (PTR_SIZE));
   (*targetm.asm_out.globalize_label) (asm_out_file, IDENTIFIER_POINTER (label));
   ASM_OUTPUT_LABEL (asm_out_file, IDENTIFIER_POINTER (label));
+}
+
+/* Default version of targetm.eh_frame_section.  */
+void
+default_eh_frame_section (void)
+{
+#ifdef EH_FRAME_SECTION_NAME
+  named_section_eh_frame_section ();
+#else
+  collect2_eh_frame_section ();
 #endif
 }
 
index a2b48e7..c4fdc53 100644 (file)
@@ -447,6 +447,8 @@ extern void default_function_pro_epilogue (FILE *, HOST_WIDE_INT);
 extern void default_exception_section (void);
 
 /* Tell assembler to switch to the section for the EH frames.  */
+extern void named_section_eh_frame_section (void);
+extern void collect2_eh_frame_section (void);
 extern void default_eh_frame_section (void);
 
 /* Default target hook that outputs nothing to a stream.  */