OSDN Git Service

* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 8 Feb 2006 07:19:43 +0000 (07:19 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 8 Feb 2006 07:19:43 +0000 (07:19 +0000)
(sparc64-*-linux*): Likewise.
* config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
* config/sparc/t-linux: New file.
* config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
__floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
(__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
-m32 -mlong-double-128.

* config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
* config/alpha/t-linux: New file.
* config/alpha/libgcc-alpha-ldbl.ver: New file.

* config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
(CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
* config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
(CPP_ARCH32_SPEC): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110741 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config.gcc
gcc/config/alpha/libgcc-alpha-ldbl.ver [new file with mode: 0644]
gcc/config/alpha/t-linux [new file with mode: 0644]
gcc/config/sparc/libgcc-sparc-glibc.ver
gcc/config/sparc/linux.h
gcc/config/sparc/linux64.h
gcc/config/sparc/t-linux [new file with mode: 0644]
gcc/config/sparc/t-linux64

index f1471bb..b75b3b3 100644 (file)
@@ -1,3 +1,25 @@
+2006-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
+       (sparc64-*-linux*): Likewise.
+       * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
+       * config/sparc/t-linux: New file.
+       * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
+       __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
+       (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
+       -m32 -mlong-double-128.
+
+       * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
+       * config/alpha/t-linux: New file.
+       * config/alpha/libgcc-alpha-ldbl.ver: New file.
+
+       * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
+       __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
+       (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
+       * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
+       __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
+       (CPP_ARCH32_SPEC): Remove.
+
 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
 
        PR tree-optimization/26145
index 85e3c2f..b5c7251 100644 (file)
@@ -568,7 +568,7 @@ alpha*-*-unicosmk*)
 alpha*-*-linux*)
        tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
        target_cpu_default="MASK_GAS"
-       tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
+       tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux"
        ;;
 alpha*-*-gnu*)
        target_cpu_default="MASK_GAS"
@@ -2055,7 +2055,7 @@ sparc-*-elf*)
 sparc-*-linux*)                # SPARC's running GNU/Linux, libc6
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-crtfm"
+       tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
        ;;
 sparc-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
@@ -2174,7 +2174,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
 sparc64-*-linux*)              # 64-bit SPARC's running GNU/Linux
        tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm"
+       tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
        ;;
 sparc64-*-netbsd*)
        tm_file="sparc/biarch64.h ${tm_file}"
diff --git a/gcc/config/alpha/libgcc-alpha-ldbl.ver b/gcc/config/alpha/libgcc-alpha-ldbl.ver
new file mode 100644 (file)
index 0000000..f8fc4a9
--- /dev/null
@@ -0,0 +1,32 @@
+%ifdef __LONG_DOUBLE_128__
+
+# long double 128 bit support in libgcc_s.so.1 is only available
+# when configured with --with-long-double-128.  Make sure all the
+# symbols are available at @@GCC_LDBL_* versions to make it clear
+# there is a configurable symbol set.
+
+%exclude {
+  __fixtfdi
+  __fixunstfdi
+  __floatditf
+
+  __divtc3
+  __multc3
+  __powitf2
+}
+
+%inherit GCC_LDBL_3.0 GCC_3.0
+GCC_LDBL_3.0 {
+  __fixtfdi
+  __fixunstfdi
+  __floatditf
+}
+
+%inherit GCC_LDBL_4.0.0 GCC_4.0.0
+GCC_LDBL_4.0.0 {
+  __divtc3
+  __multc3
+  __powitf2
+}
+
+%endif
diff --git a/gcc/config/alpha/t-linux b/gcc/config/alpha/t-linux
new file mode 100644 (file)
index 0000000..fabf38f
--- /dev/null
@@ -0,0 +1 @@
+SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver
index e3ba0bb..ed280fe 100644 (file)
@@ -26,3 +26,36 @@ GLIBC_VER {
   __frame_state_for
   __register_frame_info_table
 }
+
+%if !defined (__arch64__) && defined (__LONG_DOUBLE_128__)
+
+# long double 128 bit support from 32-bit libgcc_s.so.1 is only available
+# when configured with --with-long-double-128.  Make sure all the
+# symbols are available at @@GCC_LDBL_* versions to make it clear
+# there is a configurable symbol set.
+
+%exclude {
+  __fixtfdi
+  __fixunstfdi
+  __floatditf
+
+  __divtc3
+  __multc3
+  __powitf2
+}
+
+%inherit GCC_LDBL_3.0 GCC_3.0
+GCC_LDBL_3.0 {
+  __fixtfdi
+  __fixunstfdi
+  __floatditf
+}
+
+%inherit GCC_LDBL_4.0.0 GCC_4.0.0
+GCC_LDBL_4.0.0 {
+  __divtc3
+  __multc3
+  __powitf2
+}
+
+%endif
index df0fe58..524c720 100644 (file)
@@ -23,12 +23,14 @@ Boston, MA 02110-1301, USA.  */
 #define TARGET_OS_CPP_BUILTINS()               \
   do                                           \
     {                                          \
-       builtin_define_std ("unix");            \
-       builtin_define_std ("linux");           \
-       builtin_define ("__gnu_linux__");       \
-       builtin_assert ("system=linux");        \
-       builtin_assert ("system=unix");         \
-       builtin_assert ("system=posix");        \
+      builtin_define_std ("unix");             \
+      builtin_define_std ("linux");            \
+      builtin_define ("__gnu_linux__");                \
+      builtin_assert ("system=linux");         \
+      builtin_assert ("system=unix");          \
+      builtin_assert ("system=posix");         \
+      if (TARGET_LONG_DOUBLE_128)              \
+       builtin_define ("__LONG_DOUBLE_128__"); \
     }                                          \
   while (0)
 
@@ -95,8 +97,7 @@ Boston, MA 02110-1301, USA.  */
 
 #undef CPP_SUBTARGET_SPEC
 #define CPP_SUBTARGET_SPEC \
-"%{posix:-D_POSIX_SOURCE} \
-%{pthread:-D_REENTRANT} %{mlong-double-128:-D__LONG_DOUBLE_128__}"
+"%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
 
 #undef LIB_SPEC
 #define LIB_SPEC \
index f997fee..a190c16 100644 (file)
@@ -20,17 +20,19 @@ along with GCC; see the file COPYING.  If not, write to
 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.  */
 
-#define TARGET_OS_CPP_BUILTINS()               \
-  do                                           \
-    {                                          \
-       builtin_define_std ("unix");            \
-       builtin_define_std ("linux");           \
-       builtin_define ("_LONGLONG");           \
-       builtin_define ("__gnu_linux__");       \
-       builtin_assert ("system=linux");        \
-       builtin_assert ("system=unix");         \
-       builtin_assert ("system=posix");        \
-    }                                          \
+#define TARGET_OS_CPP_BUILTINS()                       \
+  do                                                   \
+    {                                                  \
+      builtin_define_std ("unix");                     \
+      builtin_define_std ("linux");                    \
+      builtin_define ("_LONGLONG");                    \
+      builtin_define ("__gnu_linux__");                        \
+      builtin_assert ("system=linux");                 \
+      builtin_assert ("system=unix");                  \
+      builtin_assert ("system=posix");                 \
+      if (TARGET_ARCH32 && TARGET_LONG_DOUBLE_128)     \
+       builtin_define ("__LONG_DOUBLE_128__");         \
+    }                                                  \
   while (0)
 
 /* Don't assume anything about the header files.  */
@@ -54,13 +56,6 @@ Boston, MA 02110-1301, USA.  */
 #undef ASM_CPU_DEFAULT_SPEC
 #define ASM_CPU_DEFAULT_SPEC "-Av9a"
 
-#ifdef SPARC_BI_ARCH
-
-#undef CPP_ARCH32_SPEC
-#define CPP_ARCH32_SPEC "%{mlong-double-128:-D__LONG_DOUBLE_128__}"
-
-#endif
-
 /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
    provides part of the support for getting C++ file-scope static
diff --git a/gcc/config/sparc/t-linux b/gcc/config/sparc/t-linux
new file mode 100644 (file)
index 0000000..a3e5130
--- /dev/null
@@ -0,0 +1,5 @@
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+# Avoid the t-linux version file.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
+                $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
index 3e3fa4c..7a1d5b1 100644 (file)
@@ -8,12 +8,6 @@ INSTALL_LIBGCC = install-multilib
 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
        crtfastmath.o
 
-# Override t-slibgcc-elf-ver to export some libgcc symbols with
-# the symbol versions that glibc used.
-# Avoid the t-linux version file.
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
-                $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
-
 CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \
                                 -print-multi-os-directory) \
                        = x../lib64; then echo -mcmodel=medany; fi`