public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH, freebsd]: Build quad soft-fp library.
@ 2010-08-31  8:37 Uros Bizjak
  2010-08-31 11:52 ` Joseph S. Myers
  2010-08-31 12:17 ` Gerald Pfeifer
  0 siblings, 2 replies; 11+ messages in thread
From: Uros Bizjak @ 2010-08-31  8:37 UTC (permalink / raw)
  To: Steve Kargl
  Cc: Jakub Jelinek, Richard Henderson, Joseph S. Myers,
	Gerald Pfeifer, Fortran List, FX, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 2487 bytes --]

On Tue, Aug 31, 2010 at 6:31 AM, Steve Kargl
<sgk@troutmask.apl.washington.edu> wrote:

>> I tested your patch on x86_64-*-freebsd.  My ppl and cloog
>> libraries were built with FreeBSD's system gcc (4.2.1).  All
>> tests failed due to missing symbols that are marked GCC_3.0.
>>
>> > Index: gcc/config/i386/t-freebsd
>> > ===================================================================
>> > --- gcc/config/i386/t-freebsd       (revision 0)
>> > +++ gcc/config/i386/t-freebsd       (revision 0)
>> > @@ -0,0 +1 @@
>> > +SHLIB_MAPFILES = $(srcdir)/config/i386/libgcc-bsd.ver
>>
>> Changing the = to += seems to fix the problem.  My
>> regression testing is still running, so I can't
>> report stats.
>>
>
> With my change to +=, on x86_64-*-freebsd I get
>
>                === gcc Summary ===
>
> # of expected passes            72950
> # of unexpected failures        74
> # of unexpected successes       3
> # of expected failures          215
> # of unresolved testcases       3
> # of unsupported tests          1081
> /usr/home/sgk/gcc/obj4x/gcc/xgcc  version 4.6.0 20100830 (experimental) (GCC)
>
>
>                === gfortran Summary ===
>
> # of expected passes            36155
> # of unexpected failures        4
> # of unexpected successes       7
> # of expected failures          59
> # of unsupported tests          53
> /usr/home/sgk/gcc/obj4x/gcc/testsuite/gfortran/../../gfortran  version 4.6.0 20100830 (experimental) (GCC)
>
>
> I quickly looked through the gcc.log file and noticed
> a couple of ICE's but I believe those are unrelated to
> the TFmode patch.
>
> Note, I believe that I do not have the authority to
> approve this patch.

Attached is the final (but untested) patch. The difference is, that
.ver file (and corresponding t-freebsd file) have been moved to
libgcc. I modified existing solaris .ver file (as suggested by Joseph)
and sprinkled it with %if[n]defs (IMO, solaris .ver file also needs
these).

gcc/ChangeLog:

2010-08-31  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
	i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.

libgcc/ChangeLog:

2010-08-31  Uros Bizjak  <ubizjak@gmail.com>

	* config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
	i386/t-freebsd to tmake_file.
	* config/i386/t-freebsd: New file.
	* config/i386/libgcc-bsd.ver: New file.

Gerald, can you please test this patch?

Uros.

[-- Attachment #2: c.diff.txt --]
[-- Type: text/plain, Size: 3897 bytes --]

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 163630)
+++ gcc/config.gcc	(working copy)
@@ -3485,6 +3485,9 @@
 	i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
 		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
 		;;
+	i[34567]86-*-freebsd* | x86_64-*-freebsd*)
+		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
+		;;
 	ia64*-*-linux*)
 		tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp"
 		;;
Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(revision 163630)
+++ libgcc/config.host	(working copy)
@@ -279,8 +279,10 @@
 x86_64-*-elf*)
 	;;
 i[34567]86-*-freebsd*)
+	tmake_file="${tmake_file} i386/t-freebsd"
 	;;
 x86_64-*-freebsd*)
+	tmake_file="${tmake_file} i386/t-freebsd"
 	;;
 i[34567]86-*-netbsdelf*)
 	;;
@@ -608,7 +610,8 @@
   i[34567]86-*-linux* | x86_64-*-linux* | \
   i[34567]86-*-gnu* | \
   i[34567]86-*-solaris2* | \
-  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
+  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
+  i[34567]86-*-freebsd* | x86_64-*-freebsd*)
 	if test "${host_address}" = 32; then
 		tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
 	fi
Index: libgcc/config/i386/libgcc-bsd.ver
===================================================================
--- libgcc/config/i386/libgcc-bsd.ver	(revision 0)
+++ libgcc/config/i386/libgcc-bsd.ver	(revision 0)
@@ -0,0 +1,106 @@
+# 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.6.0 for FreeBSD.
+# These lines make the symbols to get a @@GCC_4.6.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.6.0 {
+  __addtf3
+%ifndef __x86_64__
+  __copysigntf3
+%endif
+  __divtc3
+  __divtf3
+  __eqtf2
+  __extenddftf2
+  __extendsftf2
+  __extendxftf2
+%ifndef __x86_64__
+  __fabstf2
+%endif
+  __fixtfdi
+  __fixtfsi
+%ifdef __x86_64__
+  __fixtfti
+%endif
+  __fixunstfdi
+  __fixunstfsi
+%ifdef __x86_64__
+  __fixunstfti
+%endif
+  __floatditf
+  __floatsitf
+  __floattitf
+  __floatunditf
+  __floatunsitf
+%ifdef __x86_64__
+  __floatuntitf
+%endif
+  __getf2
+  __gttf2
+  __letf2
+  __lttf2
+  __multc3
+  __multf3
+  __negtf2
+  __netf2
+  __powitf2
+  __subtf3
+  __trunctfdf2
+  __trunctfsf2
+  __trunctfxf2
+  __unordtf2
+}
Index: libgcc/config/i386/t-freebsd
===================================================================
--- libgcc/config/i386/t-freebsd	(revision 0)
+++ libgcc/config/i386/t-freebsd	(revision 0)
@@ -0,0 +1,2 @@
+# Add support for the introduction of 128-bit long double.
+SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31  8:37 [PATCH, freebsd]: Build quad soft-fp library Uros Bizjak
@ 2010-08-31 11:52 ` Joseph S. Myers
  2010-08-31 12:18   ` Uros Bizjak
  2010-08-31 12:17 ` Gerald Pfeifer
  1 sibling, 1 reply; 11+ messages in thread
From: Joseph S. Myers @ 2010-08-31 11:52 UTC (permalink / raw)
  To: Uros Bizjak
  Cc: Steve Kargl, Jakub Jelinek, Richard Henderson, Gerald Pfeifer,
	Fortran List, FX, gcc-patches

On Tue, 31 Aug 2010, Uros Bizjak wrote:

> Attached is the final (but untested) patch. The difference is, that

This patch does not add the %inherit and empty GCC_4.6.0 version to 
libgcc-std.ver that should be there.

> .ver file (and corresponding t-freebsd file) have been moved to
> libgcc. I modified existing solaris .ver file (as suggested by Joseph)
> and sprinkled it with %if[n]defs (IMO, solaris .ver file also needs
> these).

They are not needed as symbols not present on a given target are quietly 
ignored there - although having them - very carefully reviewed as being 
exactly right - may avoid some problems arising accidentally in future if 
symbols are added to more targets (e.g. if TImode support is added for 
32-bit x86 - which would require care to ensure no TImode symbols are 
accidentally added to old versions for any affected target).

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31  8:37 [PATCH, freebsd]: Build quad soft-fp library Uros Bizjak
  2010-08-31 11:52 ` Joseph S. Myers
@ 2010-08-31 12:17 ` Gerald Pfeifer
  1 sibling, 0 replies; 11+ messages in thread
From: Gerald Pfeifer @ 2010-08-31 12:17 UTC (permalink / raw)
  To: Uros Bizjak
  Cc: Steve Kargl, Jakub Jelinek, Richard Henderson, Joseph S. Myers,
	Fortran List, FX, gcc-patches

On Tue, 31 Aug 2010, Uros Bizjak wrote:
> 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
> 
> 	* config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
> 	i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
> 
> 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
> 
> 	* config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
> 	i386/t-freebsd to tmake_file.
> 	* config/i386/t-freebsd: New file.
> 	* config/i386/libgcc-bsd.ver: New file.
> 
> Gerald, can you please test this patch?

Happy to!  Still looks good, only some additional PASSES versus your
previous patch, presumably due to new tests that have been added in
the meantime:

  http://gcc.gnu.org/ml/gcc-testresults/2010-08/msg03092.html

Gerald

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 11:52 ` Joseph S. Myers
@ 2010-08-31 12:18   ` Uros Bizjak
  2010-08-31 12:23     ` Jakub Jelinek
  2010-08-31 14:31     ` Joseph S. Myers
  0 siblings, 2 replies; 11+ messages in thread
From: Uros Bizjak @ 2010-08-31 12:18 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: Steve Kargl, Jakub Jelinek, Richard Henderson, Gerald Pfeifer,
	Fortran List, FX, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1492 bytes --]

On Tue, Aug 31, 2010 at 1:50 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:

>> Attached is the final (but untested) patch. The difference is, that
>
> This patch does not add the %inherit and empty GCC_4.6.0 version to
> libgcc-std.ver that should be there.
>
>> .ver file (and corresponding t-freebsd file) have been moved to
>> libgcc. I modified existing solaris .ver file (as suggested by Joseph)
>> and sprinkled it with %if[n]defs (IMO, solaris .ver file also needs
>> these).
>
> They are not needed as symbols not present on a given target are quietly
> ignored there - although having them - very carefully reviewed as being
> exactly right - may avoid some problems arising accidentally in future if
> symbols are added to more targets (e.g. if TImode support is added for
> 32-bit x86 - which would require care to ensure no TImode symbols are
> accidentally added to old versions for any affected target).

Thanks for the review!

Attached is a patch that adds missing %inherit.

gcc/ChangeLog:

2010-08-31  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
	i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.

	* libgcc-std.ver (GCC_4.6.0): Define version.

libgcc/ChangeLog:

2010-08-31  Uros Bizjak  <ubizjak@gmail.com>

	* config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
	i386/t-freebsd to tmake_file.
	* config/i386/t-freebsd: New file.
	* config/i386/libgcc-bsd.ver: New file.

OK for mainline?

Uros.

[-- Attachment #2: c.diff.txt --]
[-- Type: text/plain, Size: 3636 bytes --]

Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(revision 163630)
+++ libgcc/config.host	(working copy)
@@ -279,8 +279,10 @@
 x86_64-*-elf*)
 	;;
 i[34567]86-*-freebsd*)
+	tmake_file="${tmake_file} i386/t-freebsd"
 	;;
 x86_64-*-freebsd*)
+	tmake_file="${tmake_file} i386/t-freebsd"
 	;;
 i[34567]86-*-netbsdelf*)
 	;;
@@ -608,7 +610,8 @@
   i[34567]86-*-linux* | x86_64-*-linux* | \
   i[34567]86-*-gnu* | \
   i[34567]86-*-solaris2* | \
-  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
+  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
+  i[34567]86-*-freebsd* | x86_64-*-freebsd*)
 	if test "${host_address}" = 32; then
 		tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
 	fi
Index: libgcc/config/i386/libgcc-bsd.ver
===================================================================
--- libgcc/config/i386/libgcc-bsd.ver	(revision 0)
+++ libgcc/config/i386/libgcc-bsd.ver	(revision 0)
@@ -0,0 +1,106 @@
+# 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.6.0 for FreeBSD.
+# These lines make the symbols to get a @@GCC_4.6.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.6.0 {
+  __addtf3
+%ifndef __x86_64__
+  __copysigntf3
+%endif
+  __divtc3
+  __divtf3
+  __eqtf2
+  __extenddftf2
+  __extendsftf2
+  __extendxftf2
+%ifndef __x86_64__
+  __fabstf2
+%endif
+  __fixtfdi
+  __fixtfsi
+%ifdef __x86_64__
+  __fixtfti
+%endif
+  __fixunstfdi
+  __fixunstfsi
+%ifdef __x86_64__
+  __fixunstfti
+%endif
+  __floatditf
+  __floatsitf
+  __floattitf
+  __floatunditf
+  __floatunsitf
+%ifdef __x86_64__
+  __floatuntitf
+%endif
+  __getf2
+  __gttf2
+  __letf2
+  __lttf2
+  __multc3
+  __multf3
+  __negtf2
+  __netf2
+  __powitf2
+  __subtf3
+  __trunctfdf2
+  __trunctfsf2
+  __trunctfxf2
+  __unordtf2
+}
Index: libgcc/config/i386/t-freebsd
===================================================================
--- libgcc/config/i386/t-freebsd	(revision 0)
+++ libgcc/config/i386/t-freebsd	(revision 0)
@@ -0,0 +1,2 @@
+# Add support for the introduction of 128-bit long double.
+SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver
Index: gcc/libgcc-std.ver
===================================================================
--- gcc/libgcc-std.ver	(revision 163630)
+++ gcc/libgcc-std.ver	(working copy)
@@ -1910,3 +1910,7 @@
   __unordxf2
   __unordtf2
 }
+
+%inherit GCC_4.6.0 GCC_4.5.0
+GCC_4.6.0 {
+}

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 12:18   ` Uros Bizjak
@ 2010-08-31 12:23     ` Jakub Jelinek
  2010-08-31 14:20       ` Uros Bizjak
  2010-08-31 14:31     ` Joseph S. Myers
  1 sibling, 1 reply; 11+ messages in thread
From: Jakub Jelinek @ 2010-08-31 12:23 UTC (permalink / raw)
  To: Uros Bizjak
  Cc: Joseph S. Myers, Steve Kargl, Jakub Jelinek, Richard Henderson,
	Gerald Pfeifer, Fortran List, FX, gcc-patches

On Tue, Aug 31, 2010 at 02:09:47PM +0200, Uros Bizjak wrote:
> --- libgcc/config/i386/libgcc-bsd.ver	(revision 0)
> +++ libgcc/config/i386/libgcc-bsd.ver	(revision 0)
...
> --- libgcc/config/i386/t-freebsd	(revision 0)
> +++ libgcc/config/i386/t-freebsd	(revision 0)
> @@ -0,0 +1,2 @@
> +# Add support for the introduction of 128-bit long double.
> +SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver

One more thing.  Is this planned just for freebsd, or openbsd/netbsd as
well?  If the former, then the *.ver file should be probably
libgcc/config/i386/libgcc-freebsd.ver, as when openbsd/netbsd decide
to do similarly, it might be already in GCC 4.7 or later and then
they will need to use a different *.ver file.
If the latter, perhaps the t-* file should be called t-bsd instead of
t-freebsd?

	Jakub

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 12:23     ` Jakub Jelinek
@ 2010-08-31 14:20       ` Uros Bizjak
  0 siblings, 0 replies; 11+ messages in thread
From: Uros Bizjak @ 2010-08-31 14:20 UTC (permalink / raw)
  To: Jakub Jelinek
  Cc: Joseph S. Myers, Steve Kargl, Richard Henderson, Gerald Pfeifer,
	Fortran List, FX, gcc-patches

On Tue, Aug 31, 2010 at 2:17 PM, Jakub Jelinek <jakub@redhat.com> wrote:

>> --- libgcc/config/i386/libgcc-bsd.ver (revision 0)
>> +++ libgcc/config/i386/libgcc-bsd.ver (revision 0)
> ...
>> --- libgcc/config/i386/t-freebsd      (revision 0)
>> +++ libgcc/config/i386/t-freebsd      (revision 0)
>> @@ -0,0 +1,2 @@
>> +# Add support for the introduction of 128-bit long double.
>> +SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver
>
> One more thing.  Is this planned just for freebsd, or openbsd/netbsd as
> well?  If the former, then the *.ver file should be probably
> libgcc/config/i386/libgcc-freebsd.ver, as when openbsd/netbsd decide
> to do similarly, it might be already in GCC 4.7 or later and then
> they will need to use a different *.ver file.
> If the latter, perhaps the t-* file should be called t-bsd instead of
> t-freebsd?

We can always rename these files, so I see no problem with current
naming (t-freebsd is named due to the fact that it is called from
freebsd specific portions of the makefile).

Uros.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 12:18   ` Uros Bizjak
  2010-08-31 12:23     ` Jakub Jelinek
@ 2010-08-31 14:31     ` Joseph S. Myers
  2010-08-31 15:36       ` Uros Bizjak
  1 sibling, 1 reply; 11+ messages in thread
From: Joseph S. Myers @ 2010-08-31 14:31 UTC (permalink / raw)
  To: Uros Bizjak
  Cc: Steve Kargl, Jakub Jelinek, Richard Henderson, Gerald Pfeifer,
	Fortran List, FX, gcc-patches

Why, given that you are using __x86_64__ conditionals, isn't there such a 
conditional around __floattitf?

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 14:31     ` Joseph S. Myers
@ 2010-08-31 15:36       ` Uros Bizjak
  2010-08-31 21:47         ` Steve Kargl
  0 siblings, 1 reply; 11+ messages in thread
From: Uros Bizjak @ 2010-08-31 15:36 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: Steve Kargl, Jakub Jelinek, Richard Henderson, Gerald Pfeifer,
	Fortran List, FX, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 291 bytes --]

On Tue, Aug 31, 2010 at 4:16 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> Why, given that you are using __x86_64__ conditionals, isn't there such a
> conditional around __floattitf?

Uh, that slipped through.

Corrected and hopefully last version of patch attached.

Thanks!
Uros.

[-- Attachment #2: c.diff.txt --]
[-- Type: text/plain, Size: 4323 bytes --]

Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(revision 163670)
+++ libgcc/config.host	(working copy)
@@ -279,8 +279,10 @@
 x86_64-*-elf*)
 	;;
 i[34567]86-*-freebsd*)
+	tmake_file="${tmake_file} i386/t-freebsd"
 	;;
 x86_64-*-freebsd*)
+	tmake_file="${tmake_file} i386/t-freebsd"
 	;;
 i[34567]86-*-netbsdelf*)
 	;;
@@ -608,7 +610,8 @@
   i[34567]86-*-linux* | x86_64-*-linux* | \
   i[34567]86-*-gnu* | \
   i[34567]86-*-solaris2* | \
-  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
+  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
+  i[34567]86-*-freebsd* | x86_64-*-freebsd*)
 	if test "${host_address}" = 32; then
 		tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
 	fi
Index: libgcc/config/i386/libgcc-bsd.ver
===================================================================
--- libgcc/config/i386/libgcc-bsd.ver	(revision 0)
+++ libgcc/config/i386/libgcc-bsd.ver	(revision 0)
@@ -0,0 +1,108 @@
+# 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.6.0 for FreeBSD.
+# These lines make the symbols to get a @@GCC_4.6.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.6.0 {
+  __addtf3
+%ifndef __x86_64__
+  __copysigntf3
+%endif
+  __divtc3
+  __divtf3
+  __eqtf2
+  __extenddftf2
+  __extendsftf2
+  __extendxftf2
+%ifndef __x86_64__
+  __fabstf2
+%endif
+  __fixtfdi
+  __fixtfsi
+%ifdef __x86_64__
+  __fixtfti
+%endif
+  __fixunstfdi
+  __fixunstfsi
+%ifdef __x86_64__
+  __fixunstfti
+%endif
+  __floatditf
+  __floatsitf
+%ifdef __x86_64__
+  __floattitf
+%endif
+  __floatunditf
+  __floatunsitf
+%ifdef __x86_64__
+  __floatuntitf
+%endif
+  __getf2
+  __gttf2
+  __letf2
+  __lttf2
+  __multc3
+  __multf3
+  __negtf2
+  __netf2
+  __powitf2
+  __subtf3
+  __trunctfdf2
+  __trunctfsf2
+  __trunctfxf2
+  __unordtf2
+}
Index: libgcc/config/i386/t-freebsd
===================================================================
--- libgcc/config/i386/t-freebsd	(revision 0)
+++ libgcc/config/i386/t-freebsd	(revision 0)
@@ -0,0 +1,2 @@
+# Add support for the introduction of 128-bit long double.
+SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 163670)
+++ gcc/config.gcc	(working copy)
@@ -3485,6 +3485,9 @@
 	i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
 		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
 		;;
+	i[34567]86-*-freebsd* | x86_64-*-freebsd*)
+		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
+		;;
 	ia64*-*-linux*)
 		tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp"
 		;;
Index: gcc/libgcc-std.ver
===================================================================
--- gcc/libgcc-std.ver	(revision 163670)
+++ gcc/libgcc-std.ver	(working copy)
@@ -213,6 +213,7 @@
 %inherit GCC_3.3.2 GCC_3.3.1
 GCC_3.3.2 {
 }
+
 %inherit GCC_3.3.4 GCC_3.3.2
 GCC_3.3.4 {
   __unorddf2
@@ -1910,3 +1911,7 @@
   __unordxf2
   __unordtf2
 }
+
+%inherit GCC_4.6.0 GCC_4.5.0
+GCC_4.6.0 {
+}

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 15:36       ` Uros Bizjak
@ 2010-08-31 21:47         ` Steve Kargl
  2010-09-01  6:43           ` Uros Bizjak
  0 siblings, 1 reply; 11+ messages in thread
From: Steve Kargl @ 2010-08-31 21:47 UTC (permalink / raw)
  To: Uros Bizjak
  Cc: Joseph S. Myers, Jakub Jelinek, Richard Henderson,
	Gerald Pfeifer, Fortran List, FX, gcc-patches

On Tue, Aug 31, 2010 at 05:16:18PM +0200, Uros Bizjak wrote:
> On Tue, Aug 31, 2010 at 4:16 PM, Joseph S. Myers
> <joseph@codesourcery.com> wrote:
> > Why, given that you are using __x86_64__ conditionals, isn't there such a
> > conditional around __floattitf?
> 
> Uh, that slipped through.
> 
> Corrected and hopefully last version of patch attached.
> 

With your new patch, on x86_64-*-freebsd, I get

                === gfortran Summary ===

# of expected passes            36155
# of unexpected failures        4
# of unexpected successes       7
# of expected failures          59
# of unsupported tests          53
/usr/home/sgk/gcc/obj4x/gcc/testsuite/gfortran/../../gfortran  version 4.6.0 20100830 (experimental) (GCC)

                === gcc Summary ===

# of expected passes            72950
# of unexpected failures        74
# of unexpected successes       3
# of expected failures          215
# of unresolved testcases       3
# of unsupported tests          1081
/usr/home/sgk/gcc/obj4x/gcc/xgcc  version 4.6.0 20100830 (experimental) (GCC) 

-- 
Steve

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-08-31 21:47         ` Steve Kargl
@ 2010-09-01  6:43           ` Uros Bizjak
  2010-09-01  6:48             ` Uros Bizjak
  0 siblings, 1 reply; 11+ messages in thread
From: Uros Bizjak @ 2010-09-01  6:43 UTC (permalink / raw)
  To: Steve Kargl
  Cc: Joseph S. Myers, Jakub Jelinek, Richard Henderson,
	Gerald Pfeifer, Fortran List, FX, gcc-patches

On Tue, Aug 31, 2010 at 10:36 PM, Steve Kargl
<sgk@troutmask.apl.washington.edu> wrote:

>> > Why, given that you are using __x86_64__ conditionals, isn't there such a
>> > conditional around __floattitf?
>>
>> Uh, that slipped through.
>>
>> Corrected and hopefully last version of patch attached.
>>
>
> With your new patch, on x86_64-*-freebsd, I get
>
>                === gfortran Summary ===
>
> # of expected passes            36155
> # of unexpected failures        4
> # of unexpected successes       7
> # of expected failures          59
> # of unsupported tests          53
> /usr/home/sgk/gcc/obj4x/gcc/testsuite/gfortran/../../gfortran  version 4.6.0 20100830 (experimental) (GCC)
>
>                === gcc Summary ===
>
> # of expected passes            72950
> # of unexpected failures        74
> # of unexpected successes       3
> # of expected failures          215
> # of unresolved testcases       3
> # of unsupported tests          1081
> /usr/home/sgk/gcc/obj4x/gcc/xgcc  version 4.6.0 20100830 (experimental) (GCC)

Thanks for testing!

Committed revision 163718.

Uros.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH, freebsd]: Build quad soft-fp library.
  2010-09-01  6:43           ` Uros Bizjak
@ 2010-09-01  6:48             ` Uros Bizjak
  0 siblings, 0 replies; 11+ messages in thread
From: Uros Bizjak @ 2010-09-01  6:48 UTC (permalink / raw)
  To: Steve Kargl
  Cc: Joseph S. Myers, Jakub Jelinek, Richard Henderson,
	Gerald Pfeifer, Fortran List, FX, gcc-patches

On Tue, Aug 31, 2010 at 10:36 PM, Steve Kargl
<sgk@troutmask.apl.washington.edu> wrote:

>> > Why, given that you are using __x86_64__ conditionals, isn't there such a
>> > conditional around __floattitf?
>>
>> Uh, that slipped through.
>>
>> Corrected and hopefully last version of patch attached.
>>
>
> With your new patch, on x86_64-*-freebsd, I get
>
>                === gfortran Summary ===
>
> # of expected passes            36155
> # of unexpected failures        4
> # of unexpected successes       7
> # of expected failures          59
> # of unsupported tests          53
> /usr/home/sgk/gcc/obj4x/gcc/testsuite/gfortran/../../gfortran  version 4.6.0 20100830 (experimental) (GCC)
>
>                === gcc Summary ===
>
> # of expected passes            72950
> # of unexpected failures        74
> # of unexpected successes       3
> # of expected failures          215
> # of unresolved testcases       3
> # of unsupported tests          1081
> /usr/home/sgk/gcc/obj4x/gcc/xgcc  version 4.6.0 20100830 (experimental) (GCC)

Thanks for testing!

Committed revision 163718.

Uros.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-09-01  6:45 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-31  8:37 [PATCH, freebsd]: Build quad soft-fp library Uros Bizjak
2010-08-31 11:52 ` Joseph S. Myers
2010-08-31 12:18   ` Uros Bizjak
2010-08-31 12:23     ` Jakub Jelinek
2010-08-31 14:20       ` Uros Bizjak
2010-08-31 14:31     ` Joseph S. Myers
2010-08-31 15:36       ` Uros Bizjak
2010-08-31 21:47         ` Steve Kargl
2010-09-01  6:43           ` Uros Bizjak
2010-09-01  6:48             ` Uros Bizjak
2010-08-31 12:17 ` Gerald Pfeifer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).