re PR target/39048 (gcc 4.4.0 20090131 - Extra underscore hides libgcc's soft-fp functions from Testsuite causing FAILs + naming error in libgcc)

gcc:
	PR target/39048
	* config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
	and soft-fp/t-softfp to tmake_file.
	* config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
	(LIBGCC2_TF_CEXT): Define.
	(TF_SIZE): Define.

	libgcc:
	PR target/39048
	* config.host (i[34567]86-*-solaris2): Handle 32-bit Solaris 2/x86
	like other remaining 32-bit x86 OSes.
	* config/i386/32/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Support Sun
	assembler syntax.
	* config/i386/libgcc-sol2.ver: New file.
	* config/i386/t-sol2 (SHLIB_MAPFILES): Add it.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r157854
This commit is contained in:
Rainer Orth 2010-03-31 09:03:29 +00:00 committed by Rainer Orth
parent d8d55ac02e
commit f128db92ae
7 changed files with 121 additions and 1 deletions

View File

@ -3402,6 +3402,9 @@ case ${target} in
i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
;;
i[34567]86-*-solaris2*)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
;;
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
;;

View File

@ -165,4 +165,10 @@ along with GCC; see the file COPYING3. If not see
#define USE_HIDDEN_LINKONCE 0
#endif
/* Put all *tf routines in libgcc. */
#undef LIBGCC2_HAS_TF_MODE
#define LIBGCC2_HAS_TF_MODE 1
#define LIBGCC2_TF_CEXT q
#define TF_SIZE 113
#define MD_UNWIND_SUPPORT "config/i386/sol2-unwind.h"

View File

@ -1,3 +1,14 @@
2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Uros Bizjak <ubizjak@gmail.com>
PR target/39048
* config.host (i[34567]86-*-solaris2): Handle 32-bit Solaris 2/x86
like other remaining 32-bit x86 OSes.
* config/i386/32/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Support Sun
assembler syntax.
* config/i386/libgcc-sol2.ver: New file.
* config/i386/t-sol2 (SHLIB_MAPFILES): Add it.
2010-03-30 Jack Howarth <howarth@bromo.med.uc.edu>
PR c/43553

View File

@ -600,6 +600,7 @@ case ${host} in
i[34567]86-*-darwin* | x86_64-*-darwin* | \
i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
i[34567]86-*-linux* | x86_64-*-linux* | \
i[34567]86-*-solaris2* | \
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
if test "${host_address}" = 32; then
tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"

View File

@ -136,7 +136,7 @@ struct fenv
if (_fex & FP_EX_INVALID) \
{ \
float f = 0.0; \
__asm__ __volatile__ ("fdiv %0" : "+t" (f)); \
__asm__ __volatile__ ("fdiv {%y0, %0|%0, %y0}" : "+t" (f)); \
__asm__ __volatile__ ("fwait"); \
} \
if (_fex & FP_EX_DIVZERO) \

View File

@ -0,0 +1,96 @@
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# 128 bit long double support was introduced with GCC 4.5.0 for Solaris 2.
# These lines make the symbols to get a @@GCC_4.5.0.
%exclude {
__addtf3
__copysigntf3
__divtc3
__divtf3
__eqtf2
__extenddftf2
__extendsftf2
__extendxftf2
__fabstf2
__fixtfdi
__fixtfsi
__fixtfti
__fixunstfdi
__fixunstfsi
__fixunstfti
__floatditf
__floatsitf
__floattitf
__floatunditf
__floatunsitf
__floatuntitf
__getf2
__gttf2
__letf2
__lttf2
__multc3
__multf3
__negtf2
__netf2
__powitf2
__subtf3
__trunctfdf2
__trunctfsf2
__trunctfxf2
__unordtf2
}
GCC_4.5.0 {
__addtf3
__copysigntf3
__divtc3
__divtf3
__eqtf2
__extenddftf2
__extendsftf2
__extendxftf2
__fabstf2
__fixtfdi
__fixtfsi
__fixtfti
__fixunstfdi
__fixunstfsi
__fixunstfti
__floatditf
__floatsitf
__floattitf
__floatunditf
__floatunsitf
__floatuntitf
__getf2
__gttf2
__letf2
__lttf2
__multc3
__multf3
__negtf2
__netf2
__powitf2
__subtf3
__trunctfdf2
__trunctfsf2
__trunctfxf2
__unordtf2
}

View File

@ -32,3 +32,6 @@ $(T)crtn.o: $(gcc_srcdir)/config/i386/sol2-cn.asm $(GCC_PASSES)
CRTSTUFF_T_CFLAGS = -fPIC -O2
TARGET_LIBGCC2_CFLAGS = -fPIC
# Add support for the introduction of 128-bit long double.
SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-sol2.ver