[Patch, _eh, dawin, Version2] Allow targets to suppress epilogues in _eh frames.
IainS
developer@sandoe-acoustics.co.uk
Mon Aug 16 10:07:00 GMT 2010
On 16 Aug 2010, at 05:15, Jack Howarth wrote:
>> I am also seeing the failure...
>>
>> FAIL: gfortran.dg/g77/980701-0.f -Os execution test
Hm. This test does not contain any (overt) exception handling, I
guess we must be seeing an interaction with the fortran runtime
(or some aspect of the optimize for smallest code which is unexpected
--- note that m32 forces frame pointers on for optimize_size).
The salient difference between trunk and the patched version is that
there are no unwind frames emitted for the patched version.
Un-patched trunk sets -fasynchronous-unwind-tables.
The test passes if either
-fno-omit-frame-pointers
or
-funwind-tables
is given.
this can be replicated on un-patched trunk by passing '-fno-
asynchronous-frame-tables'.
Given that -fno-asynchronous-frame-tables does not sit well with
dawin...
I could arrange either to default to "-funwind-tables" on m64 (at
least for fortran) but please note the following:
======
apple_local 4.2.1 (5646) gcc/config/i386/i386.c:
if (TARGET_64BIT)
{
/* Mach-O doesn't support omitting the frame pointer for now. */
if (flag_omit_frame_pointer == 2)
flag_omit_frame_pointer = (TARGET_MACHO ? 0 : 1);
but we have recently changed trunk to this:
if (TARGET_64BIT)
{
if (flag_zee == 2)
flag_zee = 1;
if (flag_omit_frame_pointer == 2)
flag_omit_frame_pointer = 1;
------
If you know that the "does not support" is no longer true for Darwin10
- then, fine, we can arrange the target over-rides to switch it off
for Darwin10.
Otherwise, I'm not sure how we can justify omitting frame pointers by
default for m64 OSX
Mike?
cheers,
Iain
More information about the Gcc-patches
mailing list