This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR target/6540


   From: Jakub Jelinek <jakub@redhat.com>
   Date: Thu, 2 May 2002 14:38:34 -0400

   On Thu, May 02, 2002 at 11:00:05AM -0700, David S. Miller wrote:
   > What do you guys think?  I almost have the patch done.
   
   But if e.g. Solaris (and hopefully FreeBSD) defines __LONG_DOUBLE_128__
   unconditionally, why shouldn't it use float-i128.h then?

Because the current situation is a maintenance nightmare.

I had to go over the current code 3 or 4 times before I
could even understand what was going on.

Here is a patch (untested, about to do that) which implements my
ideas.

It caught other buglets too, defining WIDEST_HARDWARE_FP_SIZE in
sol2.h is absolutely rediculious.

--- ./config/sparc/sol2.h.~1~	Fri Apr 12 16:42:47 2002
+++ ./config/sparc/sol2.h	Thu May  2 11:15:31 2002
@@ -210,15 +210,6 @@
   ((flag_pic || GLOBAL) ? DW_EH_PE_aligned : DW_EH_PE_absptr)
 #endif
 
-/* ??? This does not work in SunOS 4.x, so it is not enabled in sparc.h.
-   Instead, it is enabled here, because it does work under Solaris.  */
-/* Define for support of TFmode long double and REAL_ARITHMETIC.
-   Sparc ABI says that long double is 4 words.  */
-#define LONG_DOUBLE_TYPE_SIZE 128
-
-/* But indicate that it isn't supported by the hardware.  */
-#define WIDEST_HARDWARE_FP_SIZE 64
-
 #define STDC_0_IN_SYSTEM_HEADERS 1
 
 #define MULDI3_LIBCALL "__mul64"
--- ./config/sparc/lynx.h.~1~	Wed Nov 14 13:44:20 2001
+++ ./config/sparc/lynx.h	Thu May  2 10:10:56 2002
@@ -30,7 +30,7 @@
 #define CPP_SPEC "%{mthreads:-D_MULTITHREADED}  \
   %{mposix:-D_POSIX_SOURCE}  \
   %{msystem-v:-I/usr/include_v}  \
-  %(cpp_cpu)"
+  %(cpp_cpu) %(cpp_long_double)"
 
 /* Names to predefine in the preprocessor for this target machine.  */
 
--- ./config/sparc/linux.h.~1~	Fri Apr 26 01:35:31 2002
+++ ./config/sparc/linux.h	Thu May  2 10:14:42 2002
@@ -81,11 +81,6 @@
 #undef TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (sparc GNU/Linux with ELF)");
 
-#undef SUBTARGET_SWITCHES
-#define SUBTARGET_SWITCHES \
-{"long-double-64", -MASK_LONG_DOUBLE_128, N_("Use 64 bit long doubles") }, \
-{"long-double-128", MASK_LONG_DOUBLE_128, N_("Use 128 bit long doubles") },
-
 #undef SIZE_TYPE
 #define SIZE_TYPE "unsigned int"
  
@@ -104,12 +99,11 @@
 #undef CPP_SUBTARGET_SPEC
 #ifdef USE_GNULIBC_1
 #define CPP_SUBTARGET_SPEC \
-"%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} \
-%{mlong-double-128:-D__LONG_DOUBLE_128__}"
+"%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
 #else
 #define CPP_SUBTARGET_SPEC \
 "%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} \
-%{pthread:-D_REENTRANT} %{mlong-double-128:-D__LONG_DOUBLE_128__}"
+%{pthread:-D_REENTRANT}"
 #endif
 
 #undef LIB_SPEC
@@ -230,21 +224,6 @@
   sprintf (LABEL, "*.L%s%ld", PREFIX, (long)(NUM))
 
 
-/* Define for support of TFmode long double and REAL_ARITHMETIC.
-   Sparc ABI says that long double is 4 words.  */
-#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64)
-
-/* Constant which presents upper bound of the above value.  */
-#define MAX_LONG_DOUBLE_TYPE_SIZE 128
-
-/* Define this to set long double type size to use in libgcc2.c, which can
-   not depend on target_flags.  */
-#ifdef __LONG_DOUBLE_128__
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
-#else
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
-#endif
-
 #if !defined(USE_GNULIBC_1) && defined(HAVE_LD_EH_FRAME_HDR)
 #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 #endif
--- ./config/sparc/sparc.h.~1~	Thu May  2 05:09:25 2002
+++ ./config/sparc/sparc.h	Thu May  2 11:16:16 2002
@@ -267,10 +267,15 @@
 %{mlittle-endian:-D__LITTLE_ENDIAN__} \
 %{mlittle-endian-data:-D__LITTLE_ENDIAN_DATA__}"
 
+/* Macros to distinguish the size of a long double.  */
+#define CPP_LONG_DOUBLE_SPEC "\
+%{mlong-double-128:-D__LONG_DOUBLE_128__} \
+%{mlong-double-64:-D__LONG_DOUBLE_64__}"
+
 /* Macros to distinguish the particular subtarget.  */
 #define CPP_SUBTARGET_SPEC ""
 
-#define CPP_SPEC "%(cpp_cpu) %(cpp_arch) %(cpp_endian) %(cpp_subtarget)"
+#define CPP_SPEC "%(cpp_cpu) %(cpp_arch) %(cpp_endian) %(cpp_long_double) %(cpp_subtarget)"
 
 /* Prevent error on `-sun4' and `-target sun4' options.  */
 /* This used to translate -dalign to -malign, but that is no good
@@ -347,6 +352,7 @@
   { "cpp_arch_default",	CPP_ARCH_DEFAULT_SPEC },\
   { "cpp_arch",		CPP_ARCH_SPEC },	\
   { "cpp_endian",	CPP_ENDIAN_SPEC },	\
+  { "cpp_long_double",	CPP_LONG_DOUBLE_SPEC },	\
   { "cpp_subtarget",	CPP_SUBTARGET_SPEC },	\
   { "asm_cpu",		ASM_CPU_SPEC },		\
   { "asm_cpu_default",	ASM_CPU_DEFAULT_SPEC },	\
@@ -597,7 +603,11 @@
      N_("Optimize tail call instructions in assembler and linker") },	\
     {"no-relax", 0,							\
      N_("Do not optimize tail call instructions in assembler or linker") }, \
-    SUBTARGET_SWITCHES			\
+    {"long-double-64", -MASK_LONG_DOUBLE_128,				\
+     N_("Use 64 bit long doubles") },					\
+    {"long-double-128", MASK_LONG_DOUBLE_128,				\
+     N_("Use 128 bit long doubles") },					\
+    SUBTARGET_SWITCHES							\
     { "", TARGET_DEFAULT, ""}}
 
 /* MASK_APP_REGS must always be the default because that's what
@@ -714,12 +724,23 @@
 #define MAX_LONG_TYPE_SIZE	64
 #endif
 
-#if 0
-/* ??? This does not work in SunOS 4.x, so it is not enabled here.
-   Instead, it is enabled in sol2.h, because it does work under Solaris.  */
 /* Define for support of TFmode long double and REAL_ARITHMETIC.
    Sparc ABI says that long double is 4 words.  */
-#define LONG_DOUBLE_TYPE_SIZE 128
+#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64)
+
+/* But indicate that no hardware actually implements the 128-bit variant,
+   it is emulated in software.  */
+#define WIDEST_HARDWARE_FP_SIZE 64
+
+/* Constant which presents upper bound of the above value.  */
+#define MAX_LONG_DOUBLE_TYPE_SIZE 128
+
+/* Define this to set long double type size to use in libgcc2.c, which can
+   not depend on target_flags.  */
+#ifdef __LONG_DOUBLE_128__
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
+#else
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
 #endif
 
 /* Width in bits of a pointer.
--- ./config/sparc/freebsd.h.~1~	Mon Apr  8 09:19:28 2002
+++ ./config/sparc/freebsd.h	Thu May  2 10:15:06 2002
@@ -56,29 +56,7 @@
 #undef  WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE 32
 
-/* Define for support of TFmode long double and REAL_ARITHMETIC.
-   Sparc ABI says that long double is 4 words.  */
-#undef  LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64)
-
-/* Constant which presents upper bound of the above value.  */
-#undef  MAX_LONG_DOUBLE_TYPE_SIZE
-#define MAX_LONG_DOUBLE_TYPE_SIZE 128
-
-/* Define this to set long double type size to use in libgcc2.c, which can
-   not depend on target_flags.  */
-#if defined(__arch64__) || defined(__LONG_DOUBLE_128__)
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
-#else
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
-#endif
-
 /* Definitions for 64-bit SPARC running systems with ELF. */
-
-#undef  SUBTARGET_SWITCHES
-#define SUBTARGET_SWITCHES						    \
-  {"long-double-64", -MASK_LONG_DOUBLE_128, N_("Use 64 bit long doubles") },  \
-  {"long-double-128", MASK_LONG_DOUBLE_128, N_("Use 128 bit long doubles") },
 
 #undef  TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (FreeBSD/sparc64 ELF)");
--- ./config/sparc/linux64.h.~1~	Sat Apr 27 22:34:04 2002
+++ ./config/sparc/linux64.h	Thu May  2 10:15:23 2002
@@ -43,8 +43,8 @@
 #ifdef SPARC_BI_ARCH
 
 #undef CPP_ARCH32_SPEC
-#define CPP_ARCH32_SPEC "%{mlong-double-128:-D__LONG_DOUBLE_128__} \
--D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int \
+#define CPP_ARCH32_SPEC \
+"-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int \
 -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc"
 
 #endif
@@ -148,23 +148,6 @@
 
 #undef WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE 32
-
-/* Define for support of TFmode long double and REAL_ARITHMETIC.
-   Sparc ABI says that long double is 4 words.  */
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64)
-
-/* Constant which presents upper bound of the above value.  */
-#undef MAX_LONG_DOUBLE_TYPE_SIZE
-#define MAX_LONG_DOUBLE_TYPE_SIZE 128
-
-/* Define this to set long double type size to use in libgcc2.c, which can
-   not depend on target_flags.  */
-#if defined(__arch64__) || defined(__LONG_DOUBLE_128__)
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
-#else
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
-#endif
 
 #undef CPP_PREDEFINES
 #define CPP_PREDEFINES "-D__ELF__ -Dunix -D_LONGLONG -D__sparc__ -D__gnu_linux__ -Dlinux -Asystem=unix -Asystem=posix"
--- ./config/sparc/lynx-ng.h.~1~	Mon Nov 12 15:52:28 2001
+++ ./config/sparc/lynx-ng.h	Thu May  2 10:09:58 2002
@@ -25,7 +25,7 @@
 #define CPP_SPEC "%{mthreads:-D_MULTITHREADED}  \
   %{mposix:-D_POSIX_SOURCE}  \
   %{msystem-v:-I/usr/include_v}  \
-  %(cpp_cpu)"
+  %(cpp_cpu) %(cpp_long_double)"
 
 /* Names to predefine in the preprocessor for this target machine.  */
 
--- ./config/sparc/elf.h.~1~	Thu Apr  4 23:35:18 2002
+++ ./config/sparc/elf.h	Thu May  2 10:14:51 2002
@@ -37,10 +37,6 @@
 #undef LIB_SPEC
 #define LIB_SPEC ""
 
-/* FIXME: until fixed */
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE 64
-
 /* This solaris2 define does not apply.  */
 #undef STDC_0_IN_SYSTEM_HEADERS
 
--- ./config/sparc/netbsd-elf.h.~1~	Thu Apr 18 01:54:26 2002
+++ ./config/sparc/netbsd-elf.h	Thu May  2 10:15:50 2002
@@ -245,18 +245,6 @@
 
 #ifdef SPARC_BI_ARCH
 
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64)
-
-#undef MAX_LONG_DOUBLE_TYPE_SIZE
-#define MAX_LONG_DOUBLE_TYPE_SIZE 128
-
-#if defined(__arch64__) || defined(__LONG_DOUBLE_128__)
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
-#else
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
-#endif
-
 #undef  CC1_SPEC
 #if DEFAULT_ARCH32_P
 #define CC1_SPEC CC1_SPEC32
@@ -281,7 +269,7 @@
 
 /* Restore this from sparc/sparc.h, netbsd.h changes it.  */
 #undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) %(cpp_arch) %(cpp_endian) %(cpp_subtarget)"
+#define CPP_SPEC "%(cpp_cpu) %(cpp_arch) %(cpp_endian) %(cpp_long_double) %(cpp_subtarget)"
 
 /* Name the port. */
 #undef TARGET_NAME
@@ -292,15 +280,6 @@
 #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
  || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
 
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE 128
-
-#undef MAX_LONG_DOUBLE_TYPE_SIZE
-#define MAX_LONG_DOUBLE_TYPE_SIZE 128
-
-#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
-
 #undef  CC1_SPEC
 #define CC1_SPEC CC1_SPEC64
 
@@ -315,15 +294,6 @@
 
 /* A 32-bit only compiler.  NetBSD don't support 128 bit `long double'
    for 32-bit code, unlike Solaris.  */
-
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE 64
-
-#undef MAX_LONG_DOUBLE_TYPE_SIZE
-#define MAX_LONG_DOUBLE_TYPE_SIZE 64
-
-#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
-#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
 
 #undef CPP_SUBTARGET_SPEC
 #define CPP_SUBTARGET_SPEC CPP_SUBTARGET_SPEC32
--- ./config/sparc/vxsparc64.h.~1~	Mon Apr  1 04:54:17 2002
+++ ./config/sparc/vxsparc64.h	Thu May  2 11:13:06 2002
@@ -61,6 +61,7 @@
 "-Dsparc64 -D__arch64__ -Acpu(sparc64) -Amachine(sparc64)"
 
 #undef CPP_PREDEFINES
+#define CPP_PREDEFINES \
 #define CPP_PREDEFINES "-D__vxworks -D__sparc__ -Dsparc -D__GCC_NEW_VARARGS__"
 
 /* Note that we define CPU here even if the user has specified -ansi.
@@ -68,7 +69,7 @@
    user code, all explicitly rely upon the definition of CPU in order to get
    the proper processor information.  */
 #undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) %(cpp_arch) -DCPU=ULTRASPARC -D__CPU__=CPU"
+#define CPP_SPEC "%(cpp_cpu) %(cpp_arch) %(cpp_long_double) -DCPU=ULTRASPARC -D__CPU__=CPU"
 
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT (MASK_APP_REGS | MASK_FPU \
--- ./config/sparc/vxsim.h.~1~	Wed Mar 27 02:28:16 2002
+++ ./config/sparc/vxsim.h	Thu May  2 10:16:57 2002
@@ -30,7 +30,7 @@
   -D__GCC_NEW_VARARGS__"
 
 #undef CPP_SPEC
-#define CPP_SPEC ""
+#define CPP_SPEC "%(cpp_long_double)"
 
 #undef CC1_SPEC
 #define CC1_SPEC "-fno-builtin %{sun4:} %{target:}"
@@ -128,9 +128,3 @@
    || (CHAR) == 'A' \
    || (CHAR) == 'h' \
    || (CHAR) == 'z')
-
-/* ??? This does not work in SunOS 4.x, so it is not enabled in sparc.h.
-   Instead, it is enabled here, because it does work under Solaris.  */
-/* Define for support of TFmode long double and REAL_ARITHMETIC.
-   Sparc ABI says that long double is 4 words.  */
-#define LONG_DOUBLE_TYPE_SIZE 64
--- ./config/sparc/vxsparc.h.~1~	Mon Nov 12 15:52:28 2001
+++ ./config/sparc/vxsparc.h	Thu May  2 10:11:57 2002
@@ -42,7 +42,7 @@
    user code, all explicitly rely upon the definition of CPU in order to get
    the proper processor information.  */
 #undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) -DCPU=SPARC"
+#define CPP_SPEC "%(cpp_cpu) %(cpp_long_double) -DCPU=SPARC"
 
 #undef PTRDIFF_TYPE
 #undef SIZE_TYPE
--- ./config/sparc/sol2-bi.h.~1~	Mon Apr 22 18:15:53 2002
+++ ./config/sparc/sol2-bi.h	Thu May  2 10:15:57 2002
@@ -5,9 +5,6 @@
 #undef SPARC_DEFAULT_CMODEL
 #define SPARC_DEFAULT_CMODEL CM_MEDANY
 
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE 128
-
 #define AS_SPARC64_FLAG	"-xarch=v9"
 
 #undef ASM_CPU32_DEFAULT_SPEC
--- ./config/sparc/sp64-elf.h.~1~	Thu Apr  4 23:37:16 2002
+++ ./config/sparc/sp64-elf.h	Thu May  2 10:16:04 2002
@@ -97,9 +97,6 @@
 #undef WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE 16
 
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE 128
-
 /* The medium/anywhere code model practically requires us to put jump tables
    in the text section as gcc is unable to distinguish LABEL_REF's of jump
    tables from other label refs (when we need to).  */
--- ./config/float-sparc.h.~1~	Thu Oct 11 08:53:57 2001
+++ ./config/float-sparc.h	Thu May  2 11:18:49 2002
@@ -66,7 +66,7 @@
 #undef DBL_MAX_10_EXP
 #define DBL_MAX_10_EXP 308
 
-#if defined(__sparcv9) || defined(__arch64__)
+#if defined(__LONG_DOUBLE_128__)
 
    /* Number of base-FLT_RADIX digits in the significand of a long double */
 #undef LDBL_MANT_DIG
@@ -96,7 +96,7 @@
 #undef LDBL_MAX_10_EXP
 #define LDBL_MAX_10_EXP 4932
 
-#else /* sparc32 */
+#elif defined(__LONG_DOUBLE_64__)
 
 #undef LDBL_MANT_DIG
 #define LDBL_MANT_DIG DBL_MANT_DIG
@@ -117,7 +117,11 @@
 #undef LDBL_MAX_10_EXP
 #define LDBL_MAX_10_EXP DBL_MAX_10_EXP
 
-#endif /* sparc32 */
+#else /* !__LONG_DOUBLE_128__ && !__LONG_DOUBLE_64__ */
+
+#error Unknown Sparc long double type size, fix the Sparc backend...
+
+#endif
 
 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    /* The floating-point expression evaluation method.
--- ./config.gcc.~1~	Wed May  1 20:56:11 2002
+++ ./config.gcc	Thu May  2 11:25:26 2002
@@ -3094,7 +3094,6 @@
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/elf.h chorus.h"
 	tmake_file="sparc/t-chorus-elf sparc/t-crtfm"
 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-	float_format=i64
 	case x${enable_threads} in
 	  xyes | xpthreads | xposix)
 		thread_file='posix'
@@ -3105,8 +3104,6 @@
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/elf.h"
 	tmake_file="sparc/t-elf sparc/t-crtfm"
 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-	#float_format=i128
-	float_format=i64
 	;;
 sparc-*-linux*aout*)		# Sparc's running GNU/Linux, a.out
 	tm_file="aoutos.h sparc/sparc.h sparc/aout.h sparc/linux-aout.h"
@@ -3117,7 +3114,6 @@
 	tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 sparc/t-crtfm"
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 	gnu_ld=yes
-	float_format=sparc
 	;;
 sparc-*-linux*)		# Sparc's running GNU/Linux, libc6
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
@@ -3127,7 +3123,6 @@
 	if test x$enable_threads = xyes; then
 		thread_file='posix'
 	fi
-	float_format=sparc
 	;;
 sparc-*-lynxos*)
 	if test x$gas = xyes
@@ -3151,8 +3146,6 @@
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/elf.h sparc/rtemself.h rtems.h"
 	tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-	#float_format=i128
-	float_format=i64
 	if test x$enable_threads = xyes; then
 	  thread_file='rtems'
 	fi
@@ -3173,7 +3166,6 @@
 		tmake_file="$tmake_file t-slibgcc-sld"
 	fi
 	extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
-	float_format=sparc
 	if test x${enable_threads} = x ; then
 	    enable_threads=$have_pthread_h
 	    if test x${enable_threads} = x ; then
@@ -3199,14 +3191,6 @@
 		tmake_file="$tmake_file t-slibgcc-sld"
 	fi
         extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o"
-        case $machine in
-        *-*-solaris2.[0-4])
-                float_format=i128
-        ;;
-        *)
-                float_format=sparc
-                ;;
-        esac
 	thread_file='solaris'
         ;;
 sparc-*-solaris2*)
@@ -3241,14 +3225,6 @@
 	esac
 	xm_defines=POSIX
 	extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
-	case $machine in
-	*-*-solaris2.[0-4])
-		float_format=i128
-		;;
-	*)
-		float_format=sparc
-		;;
-	esac
 	if test x${enable_threads} = x; then
 	    enable_threads=$have_pthread_h
 	    if test x${enable_threads} = x; then
@@ -3342,13 +3318,11 @@
 	if test x$enable_threads = xyes; then
 		thread_file='posix'
 	fi
-	float_format=sparc
 	;;
 sparc64-*-netbsd*)
 	tmake_file="${tmake_file} sparc/t-netbsd64"
 	tm_file="sparc/biarch64.h ${tm_file}"
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
-	float_format=sparc
 	;;
 strongarm-*-elf*)
 	tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
@@ -3484,6 +3458,9 @@
 case $machine in
 *-*-sysv*)
 	install_headers_dir=install-headers-cpio
+	;;
+sparc*-*-*)
+	float_format=sparc
 	;;
 esac
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]