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.19-880-g508ce3a


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  508ce3acd95e0782bc81e1f1eb84c43fa6978cfc (commit)
      from  b4acef1ffe2e1ba6c608f31c1954a8100d3eabb0 (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=508ce3acd95e0782bc81e1f1eb84c43fa6978cfc

commit 508ce3acd95e0782bc81e1f1eb84c43fa6978cfc
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date:   Wed Aug 13 14:05:15 2014 +0530

    Disable x87 inline functions for x86_64 and SSE [BZ #17262]
    
    Since:
    
    commit 409e00bd69b8d8dd74d7327085351d26769ea6fc
    Author: H.J. Lu <hjl.tools@gmail.com>
    Date:   Wed Jan 29 07:51:41 2014 -0800
    
        Disable x87 inline functions for SSE2 math
    
        When i386 and x86-64 mathinline.h was merged into a single mathinline.h,
        "gcc -m32" enables x87 inline functions on x86-64 even when -mfpmath=sse
        and SSE2 is enabled.  It is a regression on x86-64.  We should check
        __SSE2_MATH__ instead of __x86_64__ when disabling x87 inline functions.
    
    gcc-3.2 is unable to correctly compile x86_64 routines for llrint
    since it gets redefined.  This is because gcc 3.2 does not set
    __SSE2_MATH__ for x86_64, thus exposing the duplicate definition.
    
    The correct fix ought to be to check for both __SSE2_MATH__ and
    __x86_64__ and enable those bits only when neither are defined.
    
    Tested fix with the reproducer for
    409e00bd69b8d8dd74d7327085351d26769ea6fc as well as with gcc-3.2.

diff --git a/ChangeLog b/ChangeLog
index e3a1f0a..4508b54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-08-13  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+	[BZ #17262]
+	* sysdeps/x86/fpu/bits/mathinline.h: Check both __SSE2_MATH__
+	and __x86_64__ when disabling x87 inline functions.
+
 2014-08-12  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #17259]
diff --git a/NEWS b/NEWS
index 03132e2..ca01275 100644
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,7 @@ Version 2.20
   16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031, 17042, 17048,
   17050, 17058, 17061, 17062, 17069, 17075, 17078, 17079, 17084, 17086,
   17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153, 17213, 17259,
-  17261.
+  17261, 17262.
 
 * Reverted change of ABI data structures for s390 and s390x:
   On s390 and s390x the size of struct ucontext and jmp_buf was increased in
diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h
index 9c32e95..ee88b66 100644
--- a/sysdeps/x86/fpu/bits/mathinline.h
+++ b/sysdeps/x86/fpu/bits/mathinline.h
@@ -384,7 +384,10 @@ __END_NAMESPACE_C99
 # endif
 #endif
 
-#ifndef __SSE2_MATH__
+/* Disable x87 inlines when -fpmath=sse is passed and also when we're building
+   on x86_64.  Older gcc (gcc-3.2 for example) does not set __SSE2_MATH__
+   for x86_64.  */
+#if !defined __SSE2_MATH__ && !defined __x86_64__
 # if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
      && defined __OPTIMIZE__)
 
@@ -970,4 +973,4 @@ __inline_mathcode2 (__ieee754_atan2, __y, __x,
 		    return __value;)
 # endif
 
-#endif /* !__SSE2_MATH__ */
+#endif /* !__SSE2_MATH__ && !__x86_64__ */

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

Summary of changes:
 ChangeLog                         |    6 ++++++
 NEWS                              |    2 +-
 sysdeps/x86/fpu/bits/mathinline.h |    7 +++++--
 3 files changed, 12 insertions(+), 3 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]