[gentoo-commits] repo/gentoo:master commit in: dev-util/mingw64-toolchain/files/, dev-util/mingw64-toolchain/
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/
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/
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,