diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-01-27 20:59:49 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-01-27 20:59:49 +0100 |
commit | 602ea4d30716a6c72c6ee7fc8207a87e58a40d80 (patch) | |
tree | f8ce337caaf6de64c8851c52894637502cb77c32 /gcc/config/rs6000/t-ppccomm | |
parent | 091c9413bb5e21d619ff38e5a5dcea2e78e0ae42 (diff) | |
download | gcc-602ea4d30716a6c72c6ee7fc8207a87e58a40d80.zip gcc-602ea4d30716a6c72c6ee7fc8207a87e58a40d80.tar.gz gcc-602ea4d30716a6c72c6ee7fc8207a87e58a40d80.tar.bz2 |
[multiple changes]
2006-01-27 Jakub Jelinek <jakub@redhat.com>
PR target/25864
* libgcc-std.ver: Add GCC_4.1.0 symbol version.
* config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
-mno-minimal-toc to previous content.
(bispecs): Remove goal.
* config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
* config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
compatibility aliases on powerpc-*-*gnu*.
* config/rs6000/libgcc-ppc-glibc.ver: New file.
* config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
(TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
(ldblspecs): New goal.
* config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
* mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
_df_to_tf.
* config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
L_sf_to_tf or L_df_to_tf is defined.
2006-01-27 David Edelsohn <edelsohn@gnu.org>
Alan Modra <amodra@bigpond.net.au>
PR target/25864
* config/rs6000/linux.h (POWERPC_LINUX): Define.
* config/rs6000/linux64.h (POWERPC_LINUX): Define.
* config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
* config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
* config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
* config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
(rs6000_override_options): Initialize rs6000_ieeequad.
Initialize TFmode format to ibm_extended_format if not
TARGET_IEEEQUAD.
(rs6000_handle_option): Accept -mabi= ibmlongdouble and
ieeelongdouble.
(rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
(rs6000_return_in_memory): Only return IEEEQUAD in memory.
(function_arg_advance): IBM long double passed in two FPRs, not
split.
(function_arg): IBM long double passed in FPRs.
(rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
(rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
Only multireg GPR aligned.
(rs6000_init_libfuncs): Enable IBM long double functions if not
IEEEQUAD.
(rs6000_generate_compare): Use IBM long double compare if not
TARGET_IEEEQUAD.
* config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
(TARGET_IEEEQUAD): Define.
(CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
not TARGET_IEEEQUAD.
* config/rs6000/rs6000.md: Enable TFmode patterns if
!TARGET_IEEEQUAD.
* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
* config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
and -mlong-double-128 are incompatible.
* doc/invoke.texi (-mabi): Collect options together. Add
ibmlongdouble and ieeelongdouble.
From-SVN: r110303
Diffstat (limited to 'gcc/config/rs6000/t-ppccomm')
-rw-r--r-- | gcc/config/rs6000/t-ppccomm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm index eaa3252..e58dfe5 100644 --- a/gcc/config/rs6000/t-ppccomm +++ b/gcc/config/rs6000/t-ppccomm @@ -1,6 +1,6 @@ # Common support for PowerPC ELF targets (both EABI and SVR4). -LIB2FUNCS_EXTRA = tramp.S +LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/darwin-ldouble.c # This one can't end up in shared libgcc LIB2FUNCS_STATIC_EXTRA = eabi.S @@ -11,6 +11,18 @@ eabi.S: $(srcdir)/config/rs6000/eabi.asm tramp.S: $(srcdir)/config/rs6000/tramp.asm cat $(srcdir)/config/rs6000/tramp.asm > tramp.S +ifneq (,$findstring gnu,$(target)) +TARGET_LIBGCC2_CFLAGS += -specs=ldblspecs + +SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc-glibc.ver + +# Hack to use -mlong-double-128 only when not compiling nof libgcc +mklibgcc: ldblspecs + +ldblspecs: specs + sed -e '/cc1_options/{ n; s/$$/ %{!msoft-float:-mlong-double-128}/; }' < specs > $@ +endif + # Switch synonyms MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd |