From patchwork Wed Sep 1 12:55:55 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [RFA] : cygming, darwin, freebsd: Build libgcc2 TCmode complex functions Date: Wed, 01 Sep 2010 02:55:55 -0000 From: Uros Bizjak X-Patchwork-Id: 63376 Message-Id: To: gcc-patches@gcc.gnu.org Cc: Dave Korn , Kai Tietz , Gerald Pfeifer , FX 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 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. 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