Mesa (master): scons: Fix MSYS2 Mingw-w64 build.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Sep 29 09:59:23 UTC 2019
Module: Mesa
Branch: master
Commit: ffb0d3a25c60dd7fc5cb1f2c33c2977b245b5fee
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffb0d3a25c60dd7fc5cb1f2c33c2977b245b5fee
Author: pal1000 <liviuprodea at yahoo.com>
Date: Fri Mar 1 12:30:15 2019 +0200
scons: Fix MSYS2 Mingw-w64 build.
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
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.
---
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 9381f804a31..b216304170f 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 33505f79447..fc128ab1e68 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
@@ -192,6 +193,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 61432a0c342..1230cbb5b77 100644
--- a/src/gallium/drivers/swr/SConscript
+++ b/src/gallium/drivers/swr/SConscript
@@ -214,7 +214,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'])
@@ -230,7 +230,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'])
More information about the mesa-commit
mailing list