commit:     d3bc1d312399949cdeeb0ec41e106df04db93506
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 26 10:08:49 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Jun 26 10:10:10 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3bc1d31

dev-util/mingw64-runtime: pass -mno-avx for mingw cross

AVX issues with mingw-gcc aren't exactly new, e.g.
https://bugs.winehq.org/show_bug.cgi?id=45289
Been known to cause issues with dxvk too, albeit unsure
if that's still relevant as issues are scattered/lost.

Newly, >=wine-8.10 is likely to crash doing anything
at all 32bit if used -march=native (w/ avx) and 32bit
(e.g. `WINEARCH=win32 winecfg`).

Adding this to every packages using mingw as a precaution,
not believed there is much to gain from keeping AVX given
the fragility here. May revisit eventually with a newer GCC.

Not known to have caused issues with this package in particular
(unlike wine/dxvk), so skipping a slow rebuild revbump.

Unlike other ebuilds, also bother doing tc-is-gcc given what's
used is more up in the air for this ebuild.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-util/mingw64-runtime/mingw64-runtime-10.0.0-r1.ebuild | 9 ++++++++-
 dev-util/mingw64-runtime/mingw64-runtime-11.0.0.ebuild    | 7 +++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/dev-util/mingw64-runtime/mingw64-runtime-10.0.0-r1.ebuild 
b/dev-util/mingw64-runtime/mingw64-runtime-10.0.0-r1.ebuild
index ffbdbd5e4ddd..dbbdbd2de31c 100644
--- a/dev-util/mingw64-runtime/mingw64-runtime-10.0.0-r1.ebuild
+++ b/dev-util/mingw64-runtime/mingw64-runtime-10.0.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -70,6 +70,13 @@ src_configure() {
                filter-flags '-mfunction-return=thunk*' #878849
        fi
        local CHOST=${CTARGET}
+
+       # -mavx with mingw-gcc has a history of obscure issues and
+       # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+       # crashes with -march=skylake >=wine-8.10, similar issues with
+       # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+       tc-is-gcc && append-flags -mno-avx
+
        strip-unsupported-flags
 
        # Normally mingw64 does not use dynamic linker.

diff --git a/dev-util/mingw64-runtime/mingw64-runtime-11.0.0.ebuild 
b/dev-util/mingw64-runtime/mingw64-runtime-11.0.0.ebuild
index e9b21a93f78c..5e0b60934d20 100644
--- a/dev-util/mingw64-runtime/mingw64-runtime-11.0.0.ebuild
+++ b/dev-util/mingw64-runtime/mingw64-runtime-11.0.0.ebuild
@@ -65,6 +65,13 @@ src_configure() {
                filter-flags '-mfunction-return=thunk*' #878849
        fi
        local CHOST=${CTARGET}
+
+       # -mavx with mingw-gcc has a history of obscure issues and
+       # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+       # crashes with -march=skylake >=wine-8.10, similar issues with
+       # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+       tc-is-gcc && append-flags -mno-avx
+
        strip-unsupported-flags
 
        # Normally mingw64 does not use dynamic linker, but at configure time it

Reply via email to