Message ID | AANLkTikdz++hMyYfU2KOtOWXeki+kreffo4zCD5O5RPT@mail.gmail.com |
---|---|
State | New |
Headers | show |
2010/9/1 Uros Bizjak <ubizjak@gmail.com>: > Hello! > > Attached patch enables building of TCmode complex functions from > libgcc2 for cygwin, darwin and freebsd targets. The patch also removes > linux64.h defines since these are already defined in linux.h. > > 2010-09-01 Uros Bizjak <ubizjak@gmail.com> > > PR target/45476 > * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): > New defines. > * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): > Ditto. > * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): > Remove defines. > * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): > Move from ... > * config/i386/mingw32.h: ... here. > > Patch was bootstrapped on x86_64-pc-linux-gnu. Can please relevant > target maintainers check if everything is OK on their targets? > > Uros. > Mingw parts is ok. Kai
On 1 Sep 2010, at 13:55, Uros Bizjak wrote: > Attached patch enables building of TCmode complex functions from > libgcc2 for cygwin, darwin and freebsd targets. The patch also removes > linux64.h defines since these are already defined in linux.h. > > 2010-09-01 Uros Bizjak <ubizjak@gmail.com> > > PR target/45476 > * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, > TF_SIZE): > New defines. > * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, > TF_SIZE): > Ditto. > * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, > TF_SIZE): > Remove defines. > * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, > TF_SIZE): > Move from ... > * config/i386/mingw32.h: ... here. > > Patch was bootstrapped on x86_64-pc-linux-gnu. Can please relevant > target maintainers check if everything is OK on their targets? darwin; this seems to conflict with LIB2_SIDITI_CONV_FUNCS (set in i386/t- darwin) [multiply defined symbols => bootstrap fail] AFAICT from grep, LIB2_SIDITI_CONV_FUNCS is only used by darwin and mips. It's not a simple matter of removing it ... Perhaps an additional conditional in libgcc/Makefile.in will solve this - I'll try and take a look later. (not that I can approve or otherwise in any case :-)) Iain
On Wed, 2010-09-01 at 14:44 +0100, IainS wrote: > On 1 Sep 2010, at 13:55, Uros Bizjak wrote: > > > Attached patch enables building of TCmode complex functions from > > libgcc2 for cygwin, darwin and freebsd targets. The patch also removes > > linux64.h defines since these are already defined in linux.h. > > darwin; > > this seems to conflict with LIB2_SIDITI_CONV_FUNCS (set in i386/t- > darwin) [multiply defined symbols => bootstrap fail] > > AFAICT from grep, LIB2_SIDITI_CONV_FUNCS is only used by darwin and > mips. > > It's not a simple matter of removing it ... > Perhaps an additional conditional in libgcc/Makefile.in will solve > this - I'll try and take a look later. It looks that you should enable softfp_exclude_libgcc2 := y to filter out old functions. However, I'd investigate why darwin needs LIB2_SIDITI_CONV_FUNCS in the first place... Uros.
On Wed, 1 Sep 2010, Uros Bizjak wrote: > * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): > Ditto. I am happy to confirm that with this patch the example from comment #2 of PR 45476 now compiles, where without it I could reproduce the failures listed there. The testsuite is still running, but so far things look good. Do you expect to see any new PASSes? Gerald
On Thu, 2010-09-02 at 00:40 +0200, Gerald Pfeifer wrote: > On Wed, 1 Sep 2010, Uros Bizjak wrote: > > * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): > > Ditto. > > I am happy to confirm that with this patch the example from comment #2 > of PR 45476 now compiles, where without it I could reproduce the failures > listed there. Thanks! I have committed freebsd.h part of the patch to SVN mainline. > 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. Uros.
On 01/09/2010 23:40, Gerald Pfeifer wrote: > On Wed, 1 Sep 2010, Uros Bizjak wrote: >> * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE): >> Ditto. > > I am happy to confirm that with this patch the example from comment #2 > of PR 45476 now compiles, where without it I could reproduce the failures > listed there. > > The testsuite is still running, but so far things look good. Do you > expect to see any new PASSes? I'm running the testsuite on cygwin with this patch, and it appears to be working just fine; thank you Uros! cheers, DaveK
Index: config/i386/cygming.h =================================================================== --- config/i386/cygming.h (revision 163732) +++ config/i386/cygming.h (working copy) @@ -296,6 +296,12 @@ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ asm_output_aligned_bss ((FILE), (DECL), (NAME), (SIZE), (ALIGN)) +/* 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 + /* Output function declarations at the end of the file. */ #undef TARGET_ASM_FILE_END #define TARGET_ASM_FILE_END i386_pe_file_end Index: config/i386/linux64.h =================================================================== --- config/i386/linux64.h (revision 163732) +++ config/i386/linux64.h (working copy) @@ -99,12 +99,6 @@ #define MULTILIB_DEFAULTS { "m32" } #endif -/* 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 - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack #define MD_UNWIND_SUPPORT "config/i386/linux-unwind.h" 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 Index: config/i386/mingw32.h =================================================================== --- config/i386/mingw32.h (revision 163732) +++ config/i386/mingw32.h (working copy) @@ -135,14 +135,6 @@ #define STANDARD_STARTFILE_PREFIX_2 "" #endif -/* Put all *tf routines in libgcc. */ -#undef LIBGCC2_HAS_TF_MODE -#define LIBGCC2_HAS_TF_MODE 1 -#undef LIBGCC2_TF_CEXT -#define LIBGCC2_TF_CEXT q -#undef TF_SIZE -#define TF_SIZE 113 - /* Output STRING, a string representing a filename, to FILE. We canonicalize it to be in Unix format (backslashes are replaced forward slashes. */ Index: config/i386/freebsd.h =================================================================== --- config/i386/freebsd.h (revision 163732) +++ config/i386/freebsd.h (working copy) @@ -139,5 +139,11 @@ #undef TARGET_96_ROUND_53_LONG_DOUBLE #define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT) +/* 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 + /* Static stack checking is supported by means of probes. */ #define STACK_CHECK_STATIC_BUILTIN 1