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
This commit is contained in:
parent
25e8451eb7
commit
fbf2ca7bb7
9 changed files with 118 additions and 35 deletions
|
@ -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
|
||||
|
|
|
@ -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}"
|
||||
|
|
32
gcc/config/alpha/libgcc-alpha-ldbl.ver
Normal file
32
gcc/config/alpha/libgcc-alpha-ldbl.ver
Normal file
|
@ -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
|
1
gcc/config/alpha/t-linux
Normal file
1
gcc/config/alpha/t-linux
Normal file
|
@ -0,0 +1 @@
|
|||
SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
5
gcc/config/sparc/t-linux
Normal file
5
gcc/config/sparc/t-linux
Normal file
|
@ -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
|
|
@ -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`
|
||||
|
|
Loading…
Add table
Reference in a new issue