diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-02-08 08:19:43 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-02-08 08:19:43 +0100 |
commit | fbf2ca7bb768e02cb29495016550e1559bc7a09f (patch) | |
tree | a41bb4f1cec14e074b92e413221535071e94078e /gcc | |
parent | 25e8451eb7687536993eb3eb876a915ae51c63aa (diff) | |
download | gcc-fbf2ca7bb768e02cb29495016550e1559bc7a09f.zip gcc-fbf2ca7bb768e02cb29495016550e1559bc7a09f.tar.gz gcc-fbf2ca7bb768e02cb29495016550e1559bc7a09f.tar.bz2 |
config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
* 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.
From-SVN: r110741
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 22 | ||||
-rw-r--r-- | gcc/config.gcc | 6 | ||||
-rw-r--r-- | gcc/config/alpha/libgcc-alpha-ldbl.ver | 32 | ||||
-rw-r--r-- | gcc/config/alpha/t-linux | 1 | ||||
-rw-r--r-- | gcc/config/sparc/libgcc-sparc-glibc.ver | 33 | ||||
-rw-r--r-- | gcc/config/sparc/linux.h | 17 | ||||
-rw-r--r-- | gcc/config/sparc/linux64.h | 31 | ||||
-rw-r--r-- | gcc/config/sparc/t-linux | 5 | ||||
-rw-r--r-- | gcc/config/sparc/t-linux64 | 6 |
9 files changed, 118 insertions, 35 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f1471bb..b75b3b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config.gcc b/gcc/config.gcc index 85e3c2f..b5c7251 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -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 index 0000000..f8fc4a9 --- /dev/null +++ b/gcc/config/alpha/libgcc-alpha-ldbl.ver @@ -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 index 0000000..fabf38f --- /dev/null +++ b/gcc/config/alpha/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver diff --git a/gcc/config/sparc/libgcc-sparc-glibc.ver b/gcc/config/sparc/libgcc-sparc-glibc.ver index e3ba0bb..ed280fe 100644 --- a/gcc/config/sparc/libgcc-sparc-glibc.ver +++ b/gcc/config/sparc/libgcc-sparc-glibc.ver @@ -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 diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h index df0fe58..524c720 100644 --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h @@ -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 \ diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index f997fee..a190c16 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -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 index 0000000..a3e5130 --- /dev/null +++ b/gcc/config/sparc/t-linux @@ -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 diff --git a/gcc/config/sparc/t-linux64 b/gcc/config/sparc/t-linux64 index 3e3fa4c..7a1d5b1 100644 --- a/gcc/config/sparc/t-linux64 +++ b/gcc/config/sparc/t-linux64 @@ -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` |