mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-05 03:09:38 +08:00
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:
parent
d8d55ac02e
commit
f128db92ae
@ -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"
|
||||
;;
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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) \
|
||||
|
96
libgcc/config/i386/libgcc-sol2.ver
Normal file
96
libgcc/config/i386/libgcc-sol2.ver
Normal 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
|
||||
}
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user