Commit 9d340419 by Rainer Orth Committed by Rainer Orth

dwarf2out.c (default_eh_frame_section): Split into ...

	* 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.

From-SVN: r71920
parent bc800bb2
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> 2003-09-29 Zack Weinberg <zack@codesourcery.com>
* real.c (real_sqrt): Use get_canonical_qnan directly. * real.c (real_sqrt): Use get_canonical_qnan directly.
......
...@@ -110,12 +110,12 @@ dwarf2out_do_frame (void) ...@@ -110,12 +110,12 @@ dwarf2out_do_frame (void)
#define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT) #define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT)
#endif #endif
/* Default version of targetm.eh_frame_section. Note this must appear /* Various versions of targetm.eh_frame_section. Note these must appear
outside the DWARF2_DEBUGGING_INFO || DWARF2_UNWIND_INFO macro outside the DWARF2_DEBUGGING_INFO || DWARF2_UNWIND_INFO macro guards. */
guards. */
/* Version of targetm.eh_frame_section for systems with named sections. */
void void
default_eh_frame_section (void) named_section_eh_frame_section (void)
{ {
#ifdef EH_FRAME_SECTION_NAME #ifdef EH_FRAME_SECTION_NAME
#ifdef HAVE_LD_RO_RW_SECTION_MIXING #ifdef HAVE_LD_RO_RW_SECTION_MIXING
...@@ -136,13 +136,29 @@ default_eh_frame_section (void) ...@@ -136,13 +136,29 @@ default_eh_frame_section (void)
#else #else
named_section_flags (EH_FRAME_SECTION_NAME, SECTION_WRITE); named_section_flags (EH_FRAME_SECTION_NAME, SECTION_WRITE);
#endif #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'); tree label = get_file_function_name ('F');
data_section (); data_section ();
ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (PTR_SIZE)); ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (PTR_SIZE));
(*targetm.asm_out.globalize_label) (asm_out_file, IDENTIFIER_POINTER (label)); (*targetm.asm_out.globalize_label) (asm_out_file, IDENTIFIER_POINTER (label));
ASM_OUTPUT_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 #endif
} }
......
...@@ -447,6 +447,8 @@ extern void default_function_pro_epilogue (FILE *, HOST_WIDE_INT); ...@@ -447,6 +447,8 @@ extern void default_function_pro_epilogue (FILE *, HOST_WIDE_INT);
extern void default_exception_section (void); extern void default_exception_section (void);
/* Tell assembler to switch to the section for the EH frames. */ /* 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); extern void default_eh_frame_section (void);
/* Default target hook that outputs nothing to a stream. */ /* Default target hook that outputs nothing to a stream. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment