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: [RFC/CFT] Hookize TARGET_UNWIND_INFO and related macros


Hello!

Redirected to this thread / proposal from
<http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01572.html>.

On 2010-09-08 20:18, Richard Henderson wrote:
> Currently we have TARGET_UNWIND_INFO, DWARF2_UNWIND_INFO,
> DWARF2_FRAME_INFO, and MUST_USE_SJLJ_EXCEPTIONS, all of
> which interact in... let's call it surprising ways.

Indeed...

> The following adds hooks that could replace all 4 macros
> with 2 target hooks.

Yes, from a first reading of the patch it does seem like a sensible
approach.  Unfortunately, the amount of time I'm able to dedicate to
toolchain issues is very limited at the moment, but I'll try to do some
testing for ARM in the following weeks, if your proposed patch is
generally considered the way to go.

In case you want to check your new infrastructure against it, here are my
notes from 2010-03-31 when I analyzed this matter; the patch that meant
to achieve this is the one I quoted in
<http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01551.html>.


* goal

desired output from gcc/dwarf2out.c:

** TARGET_UNWIND_INFO

!NEED_UNWIND_TABLES -> no output at all
NEED_UNWIND_TABLES -> no output at all
-g !NEED_UNWIND_TABLES -> .cfi_sections .debug_frame; CFI ASM instr.
-g NEED_UNWIND_TABLES -> .cfi_sections .debug_frame; CFI ASM instr.

** !TARGET_UNWIND_INFO

!NEED_UNWIND_TABLES -> no output at all
NEED_UNWIND_TABLES -> no .cfi_sections (will go to .eh_frame by default); CFI ASM instr.
-g !NEED_UNWIND_TABLES -> .cfi_sections .debug_frame; CFI ASM instr.
-g NEED_UNWIND_TABLES -> no .cfi_sections; CFI ASM instr. -- but what about .debug_frame?


Regards,
 Thomas

Attachment: pgp00000.pgp
Description: PGP signature


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