<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Can't build with LLVM/clang 3.7.0 - SSSE3 instruction set not enabled"
href="https://bugs.freedesktop.org/show_bug.cgi?id=93454#c6">Comment # 6</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Can't build with LLVM/clang 3.7.0 - SSSE3 instruction set not enabled"
href="https://bugs.freedesktop.org/show_bug.cgi?id=93454">bug 93454</a>
from <span class="vcard"><a class="email" href="mailto:jfonseca@vmware.com" title="Jose Fonseca <jfonseca@vmware.com>"> <span class="fn">Jose Fonseca</span></a>
</span></b>
<pre>The issue is simple:
- GCC used to require -msse3 in order to include tmmintrin.h
- MSVC/ICC does not
- GCC 4.9 finally eliminated that awkward requirement -- it's now possible to
use SSE3 instrinsics without giving GCC carte blanch to emit SSSE3 whenever it
wants
- it appears Clang claims to be GCC 4.9 but does not in fact support this.
We can workaround by adding
diff --git a/src/gallium/include/pipe/p_config.h
b/src/gallium/include/pipe/p_config.h
index 0b570c7..7d5d7d4 100644
--- a/src/gallium/include/pipe/p_config.h
+++ b/src/gallium/include/pipe/p_config.h
@@ -96,7 +96,7 @@
#else
#define PIPE_ARCH_SSE
#endif
-#if defined(PIPE_CC_GCC) && (__GNUC__ * 100 + __GNUC_MINOR__) < 409 &&
!defined(__SSSE3__)
+#if defined(PIPE_CC_GCC) && ((__GNUC__ * 100 + __GNUC_MINOR__) < 409 ||
defined(__clang__)) && !defined(__SSSE3__)
/* #warning SSE3 support requires -msse3 compiler options before GCC 4.9 */
#else
#define PIPE_ARCH_SSSE3
But this is above all a bug in Clang 3.7. If that strive/claim to be GCC 4.9
then they should handle this too.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>