summaryrefslogtreecommitdiff
path: root/x11/qt4-graphicssystems-opengl/files/patch-git_ccd1b2ee
blob: a545ee9519840fa7cdd53c90b093702e6ae18514 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
commit ccd1b2ee01c193cd157978c1f9f08f87d0f9c94b
Author: Raphael Kubo da Costa <rakuco@FreeBSD.org>
Date:   Fri May 10 01:40:23 2013 +0300

    Check that 3DNow! instructions are supported before including mm3dnow.h.
    
    Include mm3dnow.h the way we already include the (S)SSE{3,4} and AVX
    instruction headers: by checking that the compiler is set to support those
    instructions besides verifying that QT_HAVE_3DNOW evalues to true (which
    only means the compiler supported them when the build was being configured).
    
    This has not caused a problem in most cases so far because GCC protects its
    mm3dnow.h header with an #ifdef __3dNOW__ (contrary to what it does on, say,
    pmmintrin.h). clang's mm3dnow.h, on the other hand, does not have that check
    and can fail if -march is set to, for example, i386 or i486.
    
    Not backported from qt5 because qtbase because qsimd_p.h does not include
    the 3DNow! headers after commit a1b30b49ef09bef2e97b9a0622bf7ad622678fee.
    
    Change-Id: I15ab5e936c71c55f89c3f25777ab27fbd262e9cd
    Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>

diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 87e26e1..6a32e8f 100644
--- ./src/corelib/tools/qsimd_p.h
+++ ./src/corelib/tools/qsimd_p.h
@@ -199,7 +199,7 @@ QT_BEGIN_HEADER
 #endif
 
 // 3D now intrinsics
-#if defined(QT_HAVE_3DNOW)
+#if defined(QT_HAVE_3DNOW) && (defined(__3dNOW__) || defined(Q_CC_MSVC))
 #include <mm3dnow.h>
 #endif