From fb39ff6e1fc993b3588ce47fef930a72822c8d5d Mon Sep 17 00:00:00 2001 From: rth Date: Tue, 5 Aug 2008 17:24:37 +0000 Subject: * Makefile.in (c-cppbuiltin.o): Depend on debug.h. * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM. * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it. * common.opt (fdwarf2-cfi-asm): New. * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New. * config.in, configure: Rebuild. * dwarf2asm.c (dw2_asm_output_data_raw): New. (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New. (dw2_force_const_mem): Externalize. * dwarf2asm.h: Update. * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't generate a real label. (output_cfi_directive): New. (add_fde_cfi): If flag_dwarf2_cfi_asm, use it. (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm. (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality, and .cfi_lsda. (dwarf2out_end_epilogue): Emit .cfi_endproc. (output_loc_operands_raw, output_loc_sequence_raw): New. (output_cfa_loc_raw): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138733 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/configure | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'gcc/configure') diff --git a/gcc/configure b/gcc/configure index a79664b708e..d1996bb7b4b 100755 --- a/gcc/configure +++ b/gcc/configure @@ -20832,6 +20832,50 @@ _ACEOF fi +# Check if we have assembler support for unwind directives. +echo "$as_me:$LINENO: checking assembler for cfi directives" >&5 +echo $ECHO_N "checking assembler for cfi directives... $ECHO_C" >&6 +if test "${gcc_cv_as_cfi_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gcc_cv_as_cfi_directive=no + if test $in_tree_gas = yes; then + if test $in_tree_gas_is_elf = yes \ + && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 17 \) \* 1000 + 0` + then gcc_cv_as_cfi_directive=yes +fi + elif test x$gcc_cv_as != x; then + echo ' .text + .cfi_startproc + .cfi_offset 0, 0 + .cfi_same_value 1 + .cfi_def_cfa 1, 2 + .cfi_escape 1, 2, 3, 4, 5 + .cfi_endproc' > conftest.s + if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + then + gcc_cv_as_cfi_directive=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +echo "$as_me:$LINENO: result: $gcc_cv_as_cfi_directive" >&5 +echo "${ECHO_T}$gcc_cv_as_cfi_directive" >&6 + + +cat >>confdefs.h <<_ACEOF +#define HAVE_GAS_CFI_DIRECTIVE `if test $gcc_cv_as_cfi_directive = yes; then echo 1; else echo 0; fi` +_ACEOF + + # GAS versions up to and including 2.11.0 may mis-optimize # .eh_frame data. echo "$as_me:$LINENO: checking assembler for eh_frame optimization" >&5 -- cgit v1.2.1