[gentoo-commits] repo/gentoo:master commit in: dev-util/mingw64-toolchain/files/, dev-util/mingw64-toolchain/

2024-05-21 Thread Ionen Wolkens
commit: 48bc1099f5d9fe2b07e6fb16ff63a83f35498f2f
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Wed May 22 02:24:44 2024 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Wed May 22 03:30:59 2024 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48bc1099

dev-util/mingw64-toolchain: fix ICE with -fno-omit-frame-pointer

If there's a known fix, better to do it here than have
every revdeps do workarounds.

Closes: https://bugs.gentoo.org/932319
Signed-off-by: Ionen Wolkens  gentoo.org>

 .../files/gcc-14.1.0-no-omit-fp-ice.patch   | 17 +
 ...11.0.1.ebuild => mingw64-toolchain-11.0.1-r1.ebuild} |  1 +
 2 files changed, 18 insertions(+)

diff --git a/dev-util/mingw64-toolchain/files/gcc-14.1.0-no-omit-fp-ice.patch 
b/dev-util/mingw64-toolchain/files/gcc-14.1.0-no-omit-fp-ice.patch
new file mode 100644
index ..a8e4c798ef17
--- /dev/null
+++ b/dev-util/mingw64-toolchain/files/gcc-14.1.0-no-omit-fp-ice.patch
@@ -0,0 +1,17 @@
+Fix ICE w/ mingw[1][2][3] when using -fno-omit-frame-pointer.
+
+Patch is from the proposed fix in [4].
+
+[1] https://bugs.gentoo.org/932319
+[2] https://github.com/msys2/MINGW-packages/issues/20861
+[3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115038
+[4] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115038#c4
+--- a/gcc/gcc/fold-mem-offsets.cc
 b/gcc/gcc/fold-mem-offsets.cc
+@@ -492,5 +492,5 @@
+   rtx_insn *def = get_single_def_in_bb (insn, reg);
+ 
+-  if (!def || GET_CODE (PATTERN (def)) != SET)
++  if (!def || RTX_FRAME_RELATED_P (def) || GET_CODE (PATTERN (def)) != SET)
+ return 0;
+ 

diff --git a/dev-util/mingw64-toolchain/mingw64-toolchain-11.0.1.ebuild 
b/dev-util/mingw64-toolchain/mingw64-toolchain-11.0.1-r1.ebuild
similarity index 99%
rename from dev-util/mingw64-toolchain/mingw64-toolchain-11.0.1.ebuild
rename to dev-util/mingw64-toolchain/mingw64-toolchain-11.0.1-r1.ebuild
index 8f3671e17f67..547dc68de3e9 100644
--- a/dev-util/mingw64-toolchain/mingw64-toolchain-11.0.1.ebuild
+++ b/dev-util/mingw64-toolchain/mingw64-toolchain-11.0.1-r1.ebuild
@@ -68,6 +68,7 @@ QA_CONFIG_IMPL_DECL_SKIP=(
 
 PATCHES=(
"${FILESDIR}"/gcc-12.2.0-drop-cflags-sed.patch
+   "${FILESDIR}"/gcc-14.1.0-no-omit-fp-ice.patch
 )
 
 pkg_pretend() {



[gentoo-commits] repo/gentoo:master commit in: dev-util/mingw64-toolchain/files/, dev-util/mingw64-toolchain/

2022-11-04 Thread Ionen Wolkens
commit: 21ef5222142188992d3a22053ac655f317b85a28
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Fri Nov  4 17:17:31 2022 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Fri Nov  4 18:32:43 2022 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21ef5222

dev-util/mingw64-toolchain: handle two race condition issues

Using same --shuffle seed as bug #879537, ran into two different
issues. First missing lib32/lib64 dirs when building out-of-source
then the missing msvcr*_extra dependency.

Closes: https://bugs.gentoo.org/879537
Signed-off-by: Ionen Wolkens  gentoo.org>

 .../mingw64-runtime-10.0.0-msvcr-extra-race.patch  | 22 ++
 .../mingw64-toolchain-10.0.0_p1-r1.ebuild  |  6 +-
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git 
a/dev-util/mingw64-toolchain/files/mingw64-runtime-10.0.0-msvcr-extra-race.patch
 
b/dev-util/mingw64-toolchain/files/mingw64-runtime-10.0.0-msvcr-extra-race.patch
new file mode 100644
index ..263dd8b4ac9b
--- /dev/null
+++ 
b/dev-util/mingw64-toolchain/files/mingw64-runtime-10.0.0-msvcr-extra-race.patch
@@ -0,0 +1,22 @@
+https://bugs.gentoo.org/879537
+https://sourceforge.net/p/mingw-w64/mingw-w64/ci/e1b0c1420bbd52ef505c71737c57393ac1397b0a
+(Makefile.in regenerated in 0eeb66e041327b9ca3f6bc1dd1d0a0bd2f46254d)
+--- a/mingw64/mingw-w64-crt/Makefile.in
 b/mingw64/mingw-w64-crt/Makefile.in
+@@ -77916,11 +77916,11 @@
+ @LIB32_TRUE@@W32API_FALSE@cd $(dir $@) && $(AR) -M < $(abspath $<)
+-@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcrt10.a: lib32/msvcrt10.mri 
lib32/libmsvcrt10_def.a lib32/libmsvcrt_common.a
++@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcrt10.a: lib32/msvcrt10.mri 
lib32/libmsvcrt10_def.a lib32/libmsvcrt_common.a lib32/libmsvcrt10_extra.a
+ @LIB32_TRUE@@W32API_FALSE@cd $(dir $@) && $(AR) -M < $(abspath $<)
+-@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcrt20.a: lib32/msvcrt20.mri 
lib32/libmsvcrt20_def.a lib32/libmsvcrt_common.a
++@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcrt20.a: lib32/msvcrt20.mri 
lib32/libmsvcrt20_def.a lib32/libmsvcrt_common.a lib32/libmsvcrt20_extra.a
+ @LIB32_TRUE@@W32API_FALSE@cd $(dir $@) && $(AR) -M < $(abspath $<)
+-@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcrt40.a: lib32/msvcrt40.mri 
lib32/libmsvcrt40_def.a lib32/libmsvcrt_common.a
++@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcrt40.a: lib32/msvcrt40.mri 
lib32/libmsvcrt40_def.a lib32/libmsvcrt_common.a lib32/libmsvcrt40_extra.a
+ @LIB32_TRUE@@W32API_FALSE@cd $(dir $@) && $(AR) -M < $(abspath $<)
+-@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcr70.a: lib32/msvcr70.mri 
lib32/libmsvcr70_def.a lib32/libmsvcrt_common.a
++@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcr70.a: lib32/msvcr70.mri 
lib32/libmsvcr70_def.a lib32/libmsvcrt_common.a lib32/libmsvcr70_extra.a
+ @LIB32_TRUE@@W32API_FALSE@cd $(dir $@) && $(AR) -M < $(abspath $<)
+-@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcr71.a: lib32/msvcr71.mri 
lib32/libmsvcr71_def.a lib32/libmsvcrt_common.a
++@LIB32_TRUE@@W32API_FALSE@lib32/libmsvcr71.a: lib32/msvcr71.mri 
lib32/libmsvcr71_def.a lib32/libmsvcrt_common.a lib32/libmsvcr71_extra.a
+ @LIB32_TRUE@@W32API_FALSE@cd $(dir $@) && $(AR) -M < $(abspath $<)

diff --git a/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0_p1-r1.ebuild 
b/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0_p1-r1.ebuild
index 4b6d2cf8e8e0..1394d8b7f905 100644
--- a/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0_p1-r1.ebuild
+++ b/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0_p1-r1.ebuild
@@ -43,6 +43,7 @@ RDEPEND="
 DEPEND="${RDEPEND}"
 
 PATCHES=(
+   "${FILESDIR}"/mingw64-runtime-10.0.0-msvcr-extra-race.patch
"${FILESDIR}"/mingw64-runtime-10.0.0-tmp-files-clash.patch
"${FILESDIR}"/gcc-11.3.0-plugin-objdump.patch
"${FILESDIR}"/gcc-12.2.0-drop-cflags-sed.patch
@@ -214,7 +215,7 @@ src_compile() {
 
einfo "Building ${id}${2+ ${2}} in ${build_dir} ..."
 
-   mkdir "${build_dir}" || die
+   mkdir -p "${build_dir}" || die
pushd "${build_dir}" >/dev/null || die
 
edo "${conf[@]}"
@@ -227,6 +228,9 @@ src_compile() {
popd >/dev/null || die
}
 
+   # workaround race condition with out-of-source crt build (bug #879537)
+   mkdir -p mingw64_runtime-build/mingw-w64-crt/lib{32,64} || die
+
# build with same ordering that crossdev would do + stage3 for pthreads
mwt-build binutils
mwt-build mingw64 headers



[gentoo-commits] repo/gentoo:master commit in: dev-util/mingw64-toolchain/files/, dev-util/mingw64-toolchain/

2022-05-12 Thread Ionen Wolkens
commit: 597109c08904d741e50ce36ab94856c00fd8562f
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Sat May  7 04:19:38 2022 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Fri May 13 02:29:29 2022 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=597109c0

dev-util/mingw64-toolchain: new package, add 10.0.0

This package attempts to bootstrap a mingw toolchain
(binutils+gcc+mingw64-runtime) without crossdev for
easy use with wine and related packages like dxvk.

crossdev is generally intended for advanced use, and
not for a user who just want to play games (e.g. many
Blizzard games don't work without USE=mingw on wine).

Not the greatest solution, but should allow improving the
wine situation for users until there's a better option.

Signed-off-by: Ionen Wolkens  gentoo.org>

 dev-util/mingw64-toolchain/Manifest|   3 +
 .../mingw64-runtime-10.0.0-tmp-files-clash.patch   |  10 +
 dev-util/mingw64-toolchain/metadata.xml|  13 +
 .../mingw64-toolchain-10.0.0.ebuild| 300 +
 4 files changed, 326 insertions(+)

diff --git a/dev-util/mingw64-toolchain/Manifest 
b/dev-util/mingw64-toolchain/Manifest
new file mode 100644
index ..059c493a8601
--- /dev/null
+++ b/dev-util/mingw64-toolchain/Manifest
@@ -0,0 +1,3 @@
+DIST binutils-2.37.tar.xz 22916924 BLAKE2B 
f5a374fdf0300f7734d1e462333296b16c9d5ed6eba167e1742a4da7082f4388c929e286bf76c3933b3e434937380340732a31790723654b491ea0c8ab5b9ba5
 SHA512 
5c11aeef6935860a6819ed3a3c93371f052e52b4bdc5033da36037c1544d013b7f12cb8d561ec954fe7469a68f1b66f1a3cd53d5a3af7293635a90d69edd15e7
+DIST gcc-11.3.0.tar.xz 81141364 BLAKE2B 
7e562d25446ca4ab9fe8cdb714866f66aba3744d78bf84f31bfb097c1a981e4c7f990cb1e6bcfec5ae6671836a4984e2b70eb8fed81dcef5e244f88da8623469
 SHA512 
f0be5ad705c73b84477128a69c047f57dd47002f375eb60e1e842e08cf2009a509e92152bca345823926d550b7395ae6d4de7db51d1ee371c2dc37313881fca7
+DIST mingw-w64-v10.0.0.tar.bz2 9620291 BLAKE2B 
451372403289c492ca939d65bb4d9f6e9fa6bdd6b32d79d6438d858e106e8cc291712ada1f3f7b951a4c6908e7d0385d485ca76920af39bcf86effa48408e330
 SHA512 
3c0827af7c40809a867758f6cd9ef3ff0c988b43082345bf725e03949af95968d634ace99a7ffae323189549221dcb5d861de9e801f1fbc7904e446641b60516

diff --git 
a/dev-util/mingw64-toolchain/files/mingw64-runtime-10.0.0-tmp-files-clash.patch 
b/dev-util/mingw64-toolchain/files/mingw64-runtime-10.0.0-tmp-files-clash.patch
new file mode 100644
index ..38c4abf91e77
--- /dev/null
+++ 
b/dev-util/mingw64-toolchain/files/mingw64-runtime-10.0.0-tmp-files-clash.patch
@@ -0,0 +1,10 @@
+Fix clash when enabling lib32 and lib64 at same time, backport from:
+https://sourceforge.net/p/mingw-w64/mingw-w64/ci/953bcd32ae470c4647e94de8548dda5a8f07d82d/
+(except directly to Makefile.in to avoid autoreconf over this)
+--- a/mingw64/mingw-w64-crt/Makefile.in
 b/mingw64/mingw-w64-crt/Makefile.in
+@@ -153,3 +153,3 @@
+ host_triplet = @host@
+-@DLLTOOL_HAS_TEMP_PREFIX_TRUE@am__append_1 = --temp-prefix $$(basename $@ .a)
++@DLLTOOL_HAS_TEMP_PREFIX_TRUE@am__append_1 = --temp-prefix $(basename $@)
+ @DELAY_IMPORT_LIBS_TRUE@am__append_2 = --output-delaylib $@.delayimp.a

diff --git a/dev-util/mingw64-toolchain/metadata.xml 
b/dev-util/mingw64-toolchain/metadata.xml
new file mode 100644
index ..7a95ab69a652
--- /dev/null
+++ b/dev-util/mingw64-toolchain/metadata.xml
@@ -0,0 +1,13 @@
+
+https://www.gentoo.org/dtd/metadata.dtd;>
+
+   
+   io...@gentoo.org
+   Ionen Wolkens
+   
+   
+   cpe:/a:gnu:gcc
+   cpe:/a:gnu:binutils
+   mingw-w64
+   
+

diff --git a/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0.ebuild 
b/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0.ebuild
new file mode 100644
index ..1ae7b097c037
--- /dev/null
+++ b/dev-util/mingw64-toolchain/mingw64-toolchain-10.0.0.ebuild
@@ -0,0 +1,300 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit edo flag-o-matic multilib-build toolchain-funcs
+
+# Pick versions known to work for Wine and use vanilla for simplicity,
+# ideally update only on mingw64-runtime bumps or if there's known issues
+# (please report) to avoid rebuilding the entire toolchain too often.
+# Do _p1++ rather than revbump if changing without bumping mingw64 itself.
+BINUTILS_PV=2.37 # 2.38 needs bug #838106
+GCC_PV=11.3.0
+
+DESCRIPTION="All-in-one mingw64 toolchain intended for building Wine without 
crossdev"
+HOMEPAGE="
+   https://www.mingw-w64.org/
+   https://gcc.gnu.org/
+   https://sourceware.org/binutils/;
+SRC_URI="
+   
mirror://sourceforge/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2
+   mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_PV}.tar.xz
+   mirror://gnu/binutils/binutils-${BINUTILS_PV}.tar.xz"
+S="${WORKDIR}"
+
+# l1:binutils+gcc,