This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc 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]

GNU C Library master sources branch master updated. glibc-2.18-674-geb98356


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  eb983568758d85506a348ff63836a114584458b1 (commit)
      from  6eeb678ac0b2359bad8f709317185dcaf2a33dd6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=eb983568758d85506a348ff63836a114584458b1

commit eb983568758d85506a348ff63836a114584458b1
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Dec 19 21:26:36 2013 +0000

    Don't make soft-fp symbols compat symbols for powerpc-nofpu.
    
    sysdeps/powerpc/powerpc32/libgcc-compat.S makes certain symbols that
    glibc once accidentally reexported from libgcc into compat symbols.
    
    Where the exports were purely accidental, this is the right thing to
    do.  However, for powerpc-nofpu the soft-fp symbols are deliberately
    exported from libc, given public versions in
    sysdeps/powerpc/nofpu/Versions and used by libm in preference to the
    libgcc versions that do not support the software exceptions and
    rounding modes.  The libc versions should also be usable by user
    programs, though normally libgcc gets linked in first (meaning,
    effectively, that the <fenv.h> functions are broken as regards their
    expected effects on user arithmetic).
    
    A longstanding todo item is to remove the functions in question from
    libgcc (when built with recent enough glibc) - that is, remove them
    from static libgcc and make them compat symbols in shared libgcc - so
    that this works properly (this is one of the items mentioned at
    <http://gcc.gnu.org/wiki/Software_floating_point> - parts of that page
    are obviously out of date, but this item still applies).  Doing this
    requires first that the functions are actually available from libc for
    new links, not just as compat symbols.
    
    This patch stops the symbols in question being compat symbols for
    powerpc-nofpu.  The nofpu Versions entries for them are removed (the
    symbols never were exported at GLIBC_2.3.2, only GLIBC_2.0, because
    the compat symbols took precedence).
    
    Tested powerpc-nofpu.  The symbols are no longer compat symbols and
    libm.so now properly gets undefined references to them (resolved to
    libc.so) instead of the libgcc copies getting linked into libm as
    before.
    
    	* sysdeps/powerpc/powerpc32/libgcc-compat.S
    	[_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define
    	as a macro and a compat symbol.
    	[_SOFT_FLOAT || __NO_FPRS__] (__fixsfdi_v_glibc20): Likewise.
    	[_SOFT_FLOAT || __NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise.
    	[_SOFT_FLOAT || __NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise.
    	[_SOFT_FLOAT || __NO_FPRS__] (__floatdidf_v_glibc20): Likewise.
    	[_SOFT_FLOAT || __NO_FPRS__] (__floaddisf_v_glibc20): Likewise.
    	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixdfdi): Do
    	not use .hidden.
    	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixsfdi):
    	Likewise.
    	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunsdfdi):
    	Likewise.
    	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunssfdi):
    	Likewise.
    	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddidf):
    	Likewise.
    	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddisf):
    	Likewise.
    	* sysdeps/powerpc/nofpu/Versions (libc): Remove __fixdfdi,
    	__fixsfdi, __fixunsdfdi, __fixunssfdi, __floatdidf and __floatdisf
    	from GLIBC_2.3.2.

diff --git a/ChangeLog b/ChangeLog
index 62c010f..fe6d523 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+2013-12-19  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/powerpc/powerpc32/libgcc-compat.S
+	[_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define
+	as a macro and a compat symbol.
+	[_SOFT_FLOAT || __NO_FPRS__] (__fixsfdi_v_glibc20): Likewise.
+	[_SOFT_FLOAT || __NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise.
+	[_SOFT_FLOAT || __NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise.
+	[_SOFT_FLOAT || __NO_FPRS__] (__floatdidf_v_glibc20): Likewise.
+	[_SOFT_FLOAT || __NO_FPRS__] (__floaddisf_v_glibc20): Likewise.
+	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixdfdi): Do
+	not use .hidden.
+	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixsfdi):
+	Likewise.
+	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunsdfdi):
+	Likewise.
+	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunssfdi):
+	Likewise.
+	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddidf):
+	Likewise.
+	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddisf):
+	Likewise.
+	* sysdeps/powerpc/nofpu/Versions (libc): Remove __fixdfdi,
+	__fixsfdi, __fixunsdfdi, __fixunssfdi, __floatdidf and __floatdisf
+	from GLIBC_2.3.2.
+
 2013-12-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
diff --git a/sysdeps/powerpc/nofpu/Versions b/sysdeps/powerpc/nofpu/Versions
index 571b1d2..9f569bd 100644
--- a/sysdeps/powerpc/nofpu/Versions
+++ b/sysdeps/powerpc/nofpu/Versions
@@ -2,9 +2,9 @@ libc {
   GLIBC_2.3.2 {
     __sim_exceptions; __sim_disabled_exceptions; __sim_round_mode;
     __adddf3; __addsf3; __divdf3; __divsf3; __eqdf2; __eqsf2;
-    __extendsfdf2; __fixdfdi; __fixdfsi; __fixsfdi; __fixsfsi;
-    __fixunsdfdi; __fixunsdfsi; __fixunssfdi; __fixunssfsi;
-    __floatdidf; __floatdisf; __floatsidf; __floatsisf;
+    __extendsfdf2; __fixdfsi; __fixsfsi;
+    __fixunsdfsi; __fixunssfsi;
+    __floatsidf; __floatsisf;
     __gedf2; __gesf2; __ledf2; __lesf2; __muldf3; __mulsf3;
     __negdf2; __negsf2; __sqrtdf2; __sqrtsf2; __subdf3;
     __subsf3; __truncdfsf2;
diff --git a/sysdeps/powerpc/powerpc32/libgcc-compat.S b/sysdeps/powerpc/powerpc32/libgcc-compat.S
index 59c8c77..4ea870a 100644
--- a/sysdeps/powerpc/powerpc32/libgcc-compat.S
+++ b/sysdeps/powerpc/powerpc32/libgcc-compat.S
@@ -27,24 +27,28 @@
 #define __lshrdi3_v_glibc20	INTUSE (__lshrdi3)
 #define __cmpdi2_v_glibc20	INTUSE (__cmpdi2)
 #define __ucmpdi2_v_glibc20	INTUSE (__ucmpdi2)
-#define __fixdfdi_v_glibc20	INTUSE (__fixdfdi)
-#define __fixsfdi_v_glibc20	INTUSE (__fixsfdi)
-#define __fixunsdfdi_v_glibc20	INTUSE (__fixunsdfdi)
-#define __fixunssfdi_v_glibc20	INTUSE (__fixunssfdi)
-#define __floatdidf_v_glibc20	INTUSE (__floatdidf)
-#define __floatdisf_v_glibc20	INTUSE (__floatdisf)
+#if !defined _SOFT_FLOAT && !defined __NO_FPRS__
+# define __fixdfdi_v_glibc20	INTUSE (__fixdfdi)
+# define __fixsfdi_v_glibc20	INTUSE (__fixsfdi)
+# define __fixunsdfdi_v_glibc20	INTUSE (__fixunsdfdi)
+# define __fixunssfdi_v_glibc20	INTUSE (__fixunssfdi)
+# define __floatdidf_v_glibc20	INTUSE (__floatdidf)
+# define __floatdisf_v_glibc20	INTUSE (__floatdisf)
+#endif
 
 	.symver __ashldi3_v_glibc20,__ashldi3@GLIBC_2.0
 	.symver __ashrdi3_v_glibc20,__ashrdi3@GLIBC_2.0
 	.symver __lshrdi3_v_glibc20,__lshrdi3@GLIBC_2.0
 	.symver __cmpdi2_v_glibc20,__cmpdi2@GLIBC_2.0
 	.symver __ucmpdi2_v_glibc20,__ucmpdi2@GLIBC_2.0
+#if !defined _SOFT_FLOAT && !defined __NO_FPRS__
 	.symver __fixdfdi_v_glibc20,__fixdfdi@GLIBC_2.0
 	.symver __fixunsdfdi_v_glibc20,__fixunsdfdi@GLIBC_2.0
 	.symver __fixsfdi_v_glibc20,__fixsfdi@GLIBC_2.0
 	.symver __fixunssfdi_v_glibc20,__fixunssfdi@GLIBC_2.0
 	.symver __floatdidf_v_glibc20,__floatdidf@GLIBC_2.0
 	.symver __floatdisf_v_glibc20,__floatdisf@GLIBC_2.0
+#endif
 
 #ifdef HAVE_DOT_HIDDEN
 	.hidden __ashldi3
@@ -52,12 +56,14 @@
 	.hidden __lshrdi3
 	.hidden __cmpdi2
 	.hidden __ucmpdi2
+# if !defined _SOFT_FLOAT && !defined __NO_FPRS__
 	.hidden __fixdfdi
 	.hidden __fixsfdi
 	.hidden __fixunsdfdi
 	.hidden __fixunssfdi
 	.hidden __floatdidf
 	.hidden __floatdisf
+# endif
 #endif
 
 	.section	".text"
@@ -97,6 +103,7 @@ __ucmpdi2_v_glibc20:
 	b __ucmpdi2@local
 .Lfe9:
 	.size	__ucmpdi2_v_glibc20,.Lfe9-__ucmpdi2_v_glibc20
+#if !defined _SOFT_FLOAT && !defined __NO_FPRS__
 	.align 2
 	.globl __fixdfdi_v_glibc20
 	.type	__fixdfdi_v_glibc20,@function
@@ -139,5 +146,6 @@ __floatdisf_v_glibc20:
 	b __floatdisf@local
 .Lfe15:
 	.size	__floatdisf_v_glibc20,.Lfe15-__floatdisf_v_glibc20
+#endif
 
 #endif

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                 |   26 ++++++++++++++++++++++++++
 sysdeps/powerpc/nofpu/Versions            |    6 +++---
 sysdeps/powerpc/powerpc32/libgcc-compat.S |   20 ++++++++++++++------
 3 files changed, 43 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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