This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Sequel to PR40521 -- -g causes GCC to generate .eh_frame


> -----Original Message-----
> From: Thomas Schwinge [mailto:thomas@codesourcery.com]
> Sent: 01 April 2010 18:18
> To: Richard Earnshaw
> Cc: Daniel Jacobowitz; Jakub Jelinek; Ramana Radhakrishnan; gcc-
> patches@gcc.gnu.org
> Subject: Re: Sequel to PR40521 -- -g causes GCC to generate .eh_frame
> 
> Hello!
> 
> On 2010-04-01 12:26, Richard Earnshaw wrote:
> > On Wed, 2010-03-31 at 17:43 +0200, Thomas Schwinge wrote:
> >> gcc/
> >> 2010-03-31  Thomas Schwinge  <thomas@codesourcery.com>
> >> 	    Daniel Jacobowitz  <dan@codesourcery.com>
> >>
> 	PR debug/40521
> >> 	* doc/tm.texi (DWARF2_UNWIND_INFO, TARGET_UNWIND_INFO): Improve.
> >> 	* dwarf2out.c (NEED_UNWIND_TABLES): Define.
> >> 	(dwarf2out_do_frame, dwarf2out_do_cfi_asm,
> dwarf2out_begin_prologue)
> >> 	(dwarf2out_frame_finish, dwarf2out_assembly_start): Use it.
> >> 	(dwarf2out_assembly_start): Correct logic for TARGET_UNWIND_INFO.
> >> 	* config/arm/arm.h (DWARF2_UNWIND_INFO): Remove definition.
> >> 	* config/arm/bpabi.h (DWARF2_UNWIND_INFO): Define to zero.
> 
> >> +Defining this macro will inhibit the default of generating DWARF 2
> frame
> >> +debugging information, see @code{DWARF2_UNWIND_INFO}.
> >>  @end defmac
> >
> > I don't understand this bit.  [...]
> 
> I agree, that sentence is a bit clumsy.  I suggest to replace it like
> this: ``Defining this macro will affect the default value that is
> chosen
> for @code{DWARF2_UNWIND_INFO}.''

Hmm, so the text for DWARF2_UNWIND_INFO reads:

  Define this macro to 0 if your target supports DWARF 2 frame unwind
  information, but it does not yet work with exception handling.
  Otherwise, if your target supports this information (if it defines
  @samp{INCOMING_RETURN_ADDR_RTX}) and @code{TARGET_UNWIND_INFO} is not
defined,
  GCC will provide a default definition of 1.
 
  If @code{TARGET_UNWIND_INFO} is not defined, and this macro is defined to
1,
  the DWARF 2 unwinder will be the default exception handling mechanism;
  otherwise, the @code{setjmp}/@code{longjmp}-based scheme will be used by
[...]

but with your proposed change it now doesn't say what happens if both
DWARF2_UNWIND_INFO and TARGET_UNWIND_INFO are defined.  If this isn't a
legal combination, then it should say so; if it is legal, then it needs to
describe what the combination does.

R.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]