public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/mingw64-toolchain/files/, dev-util/mingw64-toolchain/
Date: Fri,  4 Nov 2022 18:33:21 +0000 (UTC)	[thread overview]
Message-ID: <1667586763.21ef5222142188992d3a22053ac655f317b85a28.ionen@gentoo> (raw)

commit:     21ef5222142188992d3a22053ac655f317b85a28
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  4 17:17:31 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Nov  4 18:32:43 2022 +0000
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 <ionen <AT> 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 000000000000..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


             reply	other threads:[~2022-11-04 18:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-04 18:33 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-08-03  7:42 [gentoo-commits] repo/gentoo:master commit in: dev-util/mingw64-toolchain/files/, dev-util/mingw64-toolchain/ Ionen Wolkens
2024-05-22  3:32 Ionen Wolkens
2022-05-13  2:48 Ionen Wolkens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1667586763.21ef5222142188992d3a22053ac655f317b85a28.ionen@gentoo \
    --to=ionen@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox