This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Enable softfp support on Solaris 2/x86 (PR target/39048)


On Mon, 22 Mar 2010, Rainer Orth wrote:

> > I would have thought this should inherit from GCC_4.4.0, and this 
> > declaration should be in libgcc-std.ver even if some targets don't have 
> > any 4.5.0 symbols (see e.g. the 4.1.0 version there).
> 
> I've changed that: my reasoning was that GCC_4.4.0 doesn't exist on
> Solaris 2, and some previous versions inherited directly from the last
> non-empty one before them, as seen in pvs -dv output:
> 
> $ pvs -dv /vol/gcc-4.4/lib/libgcc_s.so.1 
>         libgcc_s.so.1 [BASE];
>         GCC_3.0;
>         GCC_3.3:        {GCC_3.0};
>         GCC_3.3.1:              {GCC_3.3};
>         GCC_3.4:        {GCC_3.3.1};
>         GCC_3.4.2:              {GCC_3.4};
>         GCC_4.0.0:              {GCC_3.4.2};
>         GCC_4.2.0:              {GCC_4.0.0};
>         GCC_4.3.0:              {GCC_4.2.0};
> 
> But inheriting from GCC_4.4.0 works just as well, and doesn't introduce
> some spurious GCC_4.4.0 version in the resulting libgcc_s.so.1.
> 
> I could probably remove the %inherit, but haven't tested that way.  If
> you prefer, I could do that.

I believe that in the interests of maintainability we should define all 
%inherit relations between target-independent versions in libgcc-std.ver.  
As you have seen, if a particular version is empty on some targets the 
inheritance will automatically end up being from the previous non-empty 
version.  That is, we should apply something like this patch (untested, 
also fixes the missing exports of __unordxf2 and __unordtf2) and then make 
further fixes on top of it.

(libgcc-bfin.ver is exactly the same as libgcc-std.ver, except for extra 
leading underscores - Blackfin deviates from the gABI in having leading 
underscores despite being an ELF target - and two Blackfin-specific 
symbols.  Thus I updated it to keep this relation to libgcc-std.ver.  
Blackfin does not use libgcc-std.ver at all.  So it duplicates the same 
set of %inherit as in libgcc-std.ver.)

2010-03-22  Joseph Myers  <joseph@codesourcery.com>

	PR other/25232
	* libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
	and __unordtf2.
	* config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
	Include ___unordxf2 and ___unordtf2.
	* config/i386/libgcc-glibc.ver: Do not define inheritance from
	GCC_4.4.0 here.

Index: config/i386/libgcc-glibc.ver
===================================================================
--- config/i386/libgcc-glibc.ver	(revision 157621)
+++ config/i386/libgcc-glibc.ver	(working copy)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008 Free Software Foundation, Inc.
+# Copyright (C) 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is part of GCC.
 #
@@ -180,9 +180,6 @@
   __trunctfxf2
   __unordtf2
 }
-# It is OK to have a duplicate of %inherit in libgcc-std.ver since
-# mkmap-symver.awk always takes the last %inherit statement.
-%inherit GCC_4.5.0 GCC_4.4.0
 GCC_4.5.0 {
   __extendxftf2
 }
Index: config/bfin/libgcc-bfin.ver
===================================================================
--- config/bfin/libgcc-bfin.ver	(revision 157621)
+++ config/bfin/libgcc-bfin.ver	(working copy)
@@ -1906,3 +1906,9 @@
 
   ___sync_synchronize
 }
+
+%inherit GCC_4.5.0 GCC_4.4.0
+GCC_4.5.0 {
+  ___unordxf2
+  ___unordtf2
+}
Index: libgcc-std.ver
===================================================================
--- libgcc-std.ver	(revision 157621)
+++ libgcc-std.ver	(working copy)
@@ -1,5 +1,5 @@
 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 2008 Free Software Foundation, Inc.
+# 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is part of GCC.
 #
@@ -1904,3 +1904,9 @@
 
   __sync_synchronize
 }
+
+%inherit GCC_4.5.0 GCC_4.4.0
+GCC_4.5.0 {
+  __unordxf2
+  __unordtf2
+}

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]