[PATCH] Fix PR libitm/55693

Patrick Marlier patrick.marlier@gmail.com
Wed Feb 6 20:15:00 GMT 2013


On Wed, Feb 6, 2013 at 6:28 PM, Iain Sandoe <iain@codesourcery.com> wrote:
>
> On 6 Feb 2013, at 17:20, Jack Howarth wrote:
>
>> On Wed, Feb 06, 2013 at 05:37:12PM +0100, Patrick Marlier wrote:
>>> Hi Jack,
>>>
>>> Thanks for having a look at this.
>>>
>>> However I don't understand why you need this:
>>>
>>> Index: gcc/config/i386/darwin.h
>>> ===================================================================
>>> --- gcc/config/i386/darwin.h (revision 195764)
>>> +++ gcc/config/i386/darwin.h (working copy)
>>> @@ -131,8 +131,7 @@ extern int darwin_emit_branch_islands;
>>>   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
>>>    %{mpc32:crtprec32.o%s} \
>>>    %{mpc64:crtprec64.o%s} \
>>> -   %{mpc80:crtprec80.o%s} \
>>> -   %{fgnu-tm: -lcrttme.o}"
>>> +   %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR
>>>
>>> #undef SUBTARGET_EXTRA_SPECS
>>> #define SUBTARGET_EXTRA_SPECS                                   \
>>> Index: gcc/config/darwin.h
>>> ===================================================================
>>> --- gcc/config/darwin.h (revision 195764)
>>> +++ gcc/config/darwin.h (working copy)
>>> @@ -363,7 +363,8 @@ extern GTY(()) int darwin_ms_struct;
>>>   %{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}"
>>>
>>> /* We want a destructor last in the list.  */
>>> -#define ENDFILE_SPEC "%{fgnu-tm: -lcrttme.o}"
>>> +#define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}"
>>> +#define ENDFILE_SPEC TM_DESTRUCTOR
>>>
>>> #define DARWIN_EXTRA_SPECS \
>>>   { "darwin_crt1", DARWIN_CRT1_SPEC }, \
>>>
>>>
>>> It seems you just add a macro TM_DESTRUCTOR which is the same as
>>> ENDFILE_SPEC. Maybe I missed something (I am updating my svn)...
>>
>> Patrick,
>>   This was the patch Iain proposed off-list and I just cleaned up the comments.
>> I believe that he added the additional definition of TM_DESTRUCTOR so that
>> it could be used to replace the explicit instance of %{fgnu-tm: -lcrttme.o}
>> in the definition of ENDFILE_SPEC in gcc/config/i386/darwin.h.
>
> Correct - it was non-obvious to have a second instance embedded in the sub-dir.
> (but I'm not going to complain if that change is removed).

I had a look at Iain's patch from the PR but some changes are missing
in the proposed patch to give TM_DESTRUCTOR a sense.
So either you add changes for files: gcc/config/darwin10.h
libgcc/config.host libgcc/config/t-darwin to this patch or you create
another patch with changes to gcc/config/darwin10.h libgcc/config.host
libgcc/config/t-darwin gcc/config/darwin.h gcc/config/i386/darwin.h.

About this old patch
http://gcc.gnu.org/ml/gcc-patches/2012-02/msg00851.html, I though that
"&& !defined (__MACH__)" should be changed but it seems the best
way...

Thanks for the precision about XCode.

Note that I cannot approve anything. So the patch must be approved by
a GCC master ;)
--
Patrick



More information about the Gcc-patches mailing list