[Patch, _eh, dawin, Version2] Allow targets to suppress epilogues in _eh frames.

Jack Howarth howarth@bromo.med.uc.edu
Tue Aug 17 15:16:00 GMT 2010


On Tue, Aug 17, 2010 at 07:57:10AM -0700, Richard Henderson wrote:
> On 08/17/2010 06:09 AM, IainS wrote:
> > heh, I guess I meant was solving the problem you noticed above a
> > pre-condition of applying the patch, or should they be considered
> > separate problems?
> 
> Let's commit them as separate patches for bi-sect-ability,
> Just In Case.
> 
> > cfi->dw_cfi_opc = DW_CFA_GNU_args_size;
> 
> Oh, that.  If Darwin doesn't like that, then it's expecting the
> compiler to always use -maccumulate-outgoing-args.  Just make 
> sure that gets set by default.  I suppose you'll have to do
> something about the hand-full of test cases that force that 
> flag off.
> 

Richard,
    In Darwin10, Apple provides two unwinders in libSystem. The
default unwinder in Snow Leopard is the compact unwinder and this
is preselected through the linker. There is a second compatibility
unwinder which can be used by passing -no_compact_unwind to ld.
The compatibility unwinder appears to be based on the original
libgcc 4.2.1 unwinder and does understand the GNU extensions
available up to that release. The compact unwinder is coded to
the standards only and doesn't support those (as can be seen
by linking with -warn_compact_unwind). Currently we are linking
in FSF gcc trunk and 4.5.x with -no_compact_unwind to have
access to all of the GNU extensions for compatibility with
the existing c++ and java eh handling.
     I would rather put off switching FSF gcc on darwin to
the compact unwinder until FSF gcc 4.7 and darwin11. This
will give us a lot of time to test compatibility and file
radar reports against the compact unwinder.
           Jack

> 
> r~



More information about the Gcc-patches mailing list