about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2014-01-29 07:51:41 -0800
committerH.J. Lu <hjl.tools@gmail.com>2014-01-29 11:57:31 -0800
commitd680656b61891159d21a535f38219cf01d5edeea (patch)
treeaf58f837f55bda7c2c19223cd7464967259505ad
parentc616775d2c6df31786b71b4e135fba90b4a63f89 (diff)
downloadglibc-d680656b61891159d21a535f38219cf01d5edeea.tar.gz
glibc-d680656b61891159d21a535f38219cf01d5edeea.tar.xz
glibc-d680656b61891159d21a535f38219cf01d5edeea.zip
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.

(cherry picked from commit 409e00bd69b8d8dd74d7327085351d26769ea6fc)

Conflicts:
	ChangeLog
	NEWS
-rw-r--r--ChangeLog6
-rw-r--r--NEWS2
-rw-r--r--sysdeps/x86/fpu/bits/mathinline.h6
3 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 15ce0b6aa2..41f5d2eb89 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-01-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #16510]
+	* sysdeps/x86/fpu/bits/mathinline.h: Check __SSE2_MATH__ instead
+	of __x86_64__ when disabling x87 inline functions.
+
 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #15605]
diff --git a/NEWS b/NEWS
index c914dadd53..a9920158c8 100644
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.18.1
 
 * The following bugs are resolved with this release:
 
-  15073, 15128, 15909, 15996, 16150, 16169, 16387.
+  15073, 15128, 15909, 15996, 16150, 16169, 16387, 16510.
 
 Version 2.18
 
diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h
index fed64149fc..b4b28f30f1 100644
--- a/sysdeps/x86/fpu/bits/mathinline.h
+++ b/sysdeps/x86/fpu/bits/mathinline.h
@@ -1,5 +1,5 @@
 /* Inline math functions for i387 and SSE.
-   Copyright (C) 1995-2013 Free Software Foundation, Inc.
+   Copyright (C) 1995-2014 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -384,7 +384,7 @@ __END_NAMESPACE_C99
 # endif
 #endif
 
-#ifndef __x86_64__
+#ifndef __SSE2_MATH__
 # if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
      && defined __OPTIMIZE__)
 
@@ -970,4 +970,4 @@ __inline_mathcode2 (__ieee754_atan2, __y, __x,
 		    return __value;)
 # endif
 
-#endif /* !__x86_64__ */
+#endif /* !__SSE2_MATH__ */