Module: Mesa
Branch: staging/19.1
Commit: d3edb249308151551f6d455c073179ef674b5408
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3edb249308151551f6d455c073179ef674b5408

Author: pal1000 <[email protected]>
Date:   Fri Mar  1 12:30:15 2019 +0200

scons: Fix MSYS2 Mingw-w64 build.

Reviewed-by: Jose Fonseca <[email protected]>

This patch is based on 
https://github.com/msys2/MINGW-packages/blob/28e3f85e09b6947ea80036c49f6c38f1394f93ca/mingw-w64-mesa/link-ole32.patch
 but with tweaks to avoid MSVC build break when applied.

v2: Create Mingw platform alias pointing to windows host platform define to 
avoid spurious crosscompilation;

v3: Fix obviously wrong compiler flags for swr driver;

v4: Update original patch URL because it has been relocated;

v5: Don't bother patching autools stuff as it's not used by MSYS2 Mingw-w64 
build and it's days are numbered anyway;

v6: After Mingw posix flag fix in 295851eb things are far simpler as we don't 
need more linking of uuid, ole32, version and shell32 than what is already in 
place.
(cherry picked from commit ffb0d3a25c60dd7fc5cb1f2c33c2977b245b5fee)

---

 scons/gallium.py                   | 3 +++
 scons/llvm.py                      | 7 +++++++
 src/gallium/drivers/swr/SConscript | 4 ++--
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index 723645334d3..5831a860abf 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -237,6 +237,9 @@ def generate(env):
     hosthost_platform = host_platform.system().lower()
     if hosthost_platform.startswith('cygwin'):
         hosthost_platform = 'cygwin'
+    # Avoid spurious crosscompilation in MSYS2 environment.
+    if hosthost_platform.startswith('mingw'):
+        hosthost_platform = 'windows'
     host_machine = os.environ.get('PROCESSOR_ARCHITEW6432', 
os.environ.get('PROCESSOR_ARCHITECTURE', host_platform.machine()))
     host_machine = {
         'x86': 'x86',
diff --git a/scons/llvm.py b/scons/llvm.py
index 23da448a3de..b5eaa5c93e8 100644
--- a/scons/llvm.py
+++ b/scons/llvm.py
@@ -30,6 +30,7 @@ Tool-specific initialization for LLVM
 import os
 import os.path
 import re
+import platform as host_platform
 import sys
 import distutils.version
 
@@ -241,6 +242,12 @@ def generate(env):
             'uuid',
         ])
 
+        # Mingw-w64 zlib is required when building with LLVM support in MSYS2 
environment
+        if host_platform.system().lower().startswith('mingw'):
+            env.Append(LIBS = [
+                 'z',
+            ])
+
         if env['msvc']:
             # Some of the LLVM C headers use the inline keyword without
             # defining it.
diff --git a/src/gallium/drivers/swr/SConscript 
b/src/gallium/drivers/swr/SConscript
index b0bead242f7..60d97018315 100644
--- a/src/gallium/drivers/swr/SConscript
+++ b/src/gallium/drivers/swr/SConscript
@@ -204,7 +204,7 @@ env.Prepend(CPPPATH = [
 envavx = env.Clone()
 
 envavx.Append(CPPDEFINES = ['KNOB_ARCH=KNOB_ARCH_AVX'])
-if env['platform'] == 'windows':
+if env['msvc']:
     envavx.Append(CCFLAGS = ['/arch:AVX'])
 else:
     envavx.Append(CCFLAGS = ['-mavx'])
@@ -220,7 +220,7 @@ env.Alias('swrAVX', swrAVX)
 envavx2 = env.Clone()
 
 envavx2.Append(CPPDEFINES = ['KNOB_ARCH=KNOB_ARCH_AVX2'])
-if env['platform'] == 'windows':
+if env['msvc']:
     envavx2.Append(CCFLAGS = ['/arch:AVX2'])
 else:
     envavx2.Append(CCFLAGS = ['-mavx2', '-mfma', '-mbmi2', '-mf16c'])

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to