Message ID | AANLkTikD2Y4fB0i8d_r6Gjf6oxFch4LuPFouCAA-imXX@mail.gmail.com |
---|---|
State | New |
Headers | show |
On 2 Sep 2010, at 11:25, Uros Bizjak wrote: > On Thu, Sep 2, 2010 at 11:48 AM, IainS <developer@sandoe-acoustics.co.uk > > wrote: >> >> On 2 Sep 2010, at 06:08, Uros Bizjak wrote: >>>> >>>> The testsuite is still running, but so far things look good. Do >>>> you >>>> expect to see any new PASSes? >>> >>> No, since TCmode tests in gcc.target/i386 are currently limited to >>> linux >>> targets only. I will enable them for other __float128 capable >>> targets >>> once Darwin catches up with TCmode libgcc2 support. >> >> >> well, there are differences in approach; >> In the system levels, Darwin uses fat libraries rather than >> separating m32 >> and m64 into different directories. >> >> The 'old' symbol exports for a build of gcc to run on Darwin* have >> to agree >> with those in the relevant system version of libgcc_s - which are >> defined by >> common export lists. For 'new' symbols this is immaterial. >> >> However, some of the relevant symbols are not 'new' - we've been >> exporting >> them for years (via the LIB2_SIDITI_CONV_FUNCS mechanism) - so we >> must >> accommodate that. >> >> It turns out that the libgcc Makefile does not honor >> LIB2FUNCS_EXCLUDE for >> these functions in the case of LIB2_SIDITI_CONV_FUNCS=yes. >> >> I suspect that this an oversight - since it does honor it otherwise. >> >> the patch below bootstrapped on i686-darwin9 (currently reg- >> testing) and has >> passed stage1 on i686-darwin8 and x86_64-darwin10 >> >> AFAICT the only targets using LIB2_SIDITI_CONV_FUNCS are MIPS and >> Darwin. >> >> cheers, >> Iain >> >> Index: libgcc/Makefile.in >> =================================================================== >> --- libgcc/Makefile.in (revision 163732) >> +++ libgcc/Makefile.in (working copy) >> @@ -384,9 +384,9 @@ ifneq ($(LIB2_SIDITI_CONV_FUNCS),) >> # functions are built with a wordsize of 4; the TImode functions are >> # built with the same labels, but a wordsize of 8. >> >> -sifuncs = $(subst XX,si,$(swfloatfuncs)) >> -difuncs = $(subst XX,di,$(dwfloatfuncs)) >> -tifuncs = $(subst XX,ti,$(dwfloatfuncs)) >> +sifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst >> XX,si,$(swfloatfuncs))) >> +difuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst >> XX,di,$(dwfloatfuncs))) >> +tifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst >> XX,ti,$(dwfloatfuncs))) >> >> iter-items := $(sifuncs) $(difuncs) $(tifuncs) >> iter-labels := $(sifuncs) $(difuncs) $(difuncs) >> Index: gcc/config/i386/t-darwin >> =================================================================== >> --- gcc/config/i386/t-darwin (revision 163732) >> +++ gcc/config/i386/t-darwin (working copy) >> @@ -2,3 +2,4 @@ MULTILIB_OPTIONS = m64 >> MULTILIB_DIRNAMES = x86_64 >> LIB2_SIDITI_CONV_FUNCS=yes >> LIB2FUNCS_EXTRA = $(srcdir)/config/darwin-64.c >> +LIB2FUNCS_EXCLUDE = _fixtfdi _fixunstfdi _floatditf _floatunditf >> >> >> > > I assume you also included this patch: yes. Iain > > Index: config/i386/darwin.h > =================================================================== > --- config/i386/darwin.h (revision 163732) > +++ config/i386/darwin.h (working copy) > @@ -148,6 +148,12 @@ > > #define SHIFT_DOUBLE_OMITS_COUNT 0 > > +/* Put all *tf routines in libgcc. */ > +#undef LIBGCC2_HAS_TF_MODE > +#define LIBGCC2_HAS_TF_MODE 1 > +#define LIBGCC2_TF_CEXT q > +#define TF_SIZE 113 > + > #undef TARGET_ASM_FILE_END > #define TARGET_ASM_FILE_END darwin_file_end > > > Uros.
Index: config/i386/darwin.h =================================================================== --- config/i386/darwin.h (revision 163732) +++ config/i386/darwin.h (working copy) @@ -148,6 +148,12 @@ #define SHIFT_DOUBLE_OMITS_COUNT 0 +/* Put all *tf routines in libgcc. */ +#undef LIBGCC2_HAS_TF_MODE +#define LIBGCC2_HAS_TF_MODE 1 +#define LIBGCC2_TF_CEXT q +#define TF_SIZE 113 + #undef TARGET_ASM_FILE_END #define TARGET_ASM_FILE_END darwin_file_end