On Wed, Feb 6, 2013 at 6:28 PM, Iain Sandoe <i...@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