This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Work around miscompilation with 4.8.1
- From: Andi Kleen <andi at firstfloor dot org>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Andi Kleen <ak at linux dot intel dot com>
- Date: Sat, 13 Sep 2014 00:27:48 +0200
- Subject: [PATCH] Work around miscompilation with 4.8.1
- Authentication-results: sourceware.org; auth=none
From: Andi Kleen <ak@linux.intel.com>
When compiling on opensuse 13.1, with a 4.8.1 based host compiler
and --disable-bootstrap, the generated compiler always ICEs while
compiling __builtin_cpu_supports in the cilk runtime library.
The problem is fixed with later 4.8 releases, but at least still
happens with the opensuse compiler.
The cilk library already had a fallback path for this function
for other compilers. Just use the fallback path when
__SSE2_MATH__ is set. This makes it work on x86_64 systems
with the buggy 4.8.1 at least, if multilib is forced to
SSE.
libcilkrts/:
2014-09-12 Andi Kleen <ak@linux.intel.com>
PR bootstrap/63235
* runtime/config/x86/os-unix-sysdep.c (__builtin_cpu_supports):
Use fallback when __SSE2_MATH__ is set.
---
libcilkrts/runtime/config/x86/os-unix-sysdep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcilkrts/runtime/config/x86/os-unix-sysdep.c b/libcilkrts/runtime/config/x86/os-unix-sysdep.c
index b505ddf..344c31a 100644
--- a/libcilkrts/runtime/config/x86/os-unix-sysdep.c
+++ b/libcilkrts/runtime/config/x86/os-unix-sysdep.c
@@ -96,7 +96,7 @@ COMMON_SYSDEP int __cilkrts_xchg(volatile int *ptr, int x)
* This declaration should generate an error when the Intel compiler adds
* supprt for the intrinsic.
*/
-#ifdef __INTEL_COMPILER
+#if defined(__INTEL_COMPILER) || defined(__SSE2_MATH__)
static inline int __builtin_cpu_supports(const char *feature)
{
return 1;
--
2.1.0