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: app-emulation/wine-proton/
Date: Thu, 28 Nov 2024 05:37:14 +0000 (UTC)	[thread overview]
Message-ID: <1732772187.a15fa5bb5c73df85a7261af00158780ca309f357.ionen@gentoo> (raw)

commit:     a15fa5bb5c73df85a7261af00158780ca309f357
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 28 03:48:48 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Nov 28 05:36:27 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a15fa5bb

app-emulation/wine-proton: allow using compiler-rt[atomic-builtins]

Passing -latomic is no longer needed when using the new compiler-rt
w/ USE=atomic-builtins, and lets gcc be optional on llvm profiles.

To recap:
* gcc: don't need -latomic
* clang (w/o compiler-rt): don't need -latomic
* clang + compiler-rt[atomic-builtins]: don't need -latomic
* clang + compiler-rt[-atomic-builtins]: needs -latomic

So, if compiler-rt always provides atomics in the future (rather
than optional) all workarounds could be dropped.

The || ( ) is a bit "best effort" given dependencies don't know
what is actually going to be used.

(not worth a revbump, if really want to depclean gcc please
re-emerge manually)

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

 app-emulation/wine-proton/wine-proton-8.0.5c.ebuild | 19 ++++++++++++++-----
 app-emulation/wine-proton/wine-proton-9.0.2.ebuild  | 19 ++++++++++++++-----
 app-emulation/wine-proton/wine-proton-9.0.3.ebuild  | 19 ++++++++++++++-----
 app-emulation/wine-proton/wine-proton-9999.ebuild   | 19 ++++++++++++++-----
 4 files changed, 56 insertions(+), 20 deletions(-)

diff --git a/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
index fe281d763060..484175067031 100644
--- a/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
+++ b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
@@ -62,10 +62,8 @@ WINE_DLOPEN_DEPEND="
 	xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
 	xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
 "
-# gcc: for -latomic with clang
 WINE_COMMON_DEPEND="
 	${WINE_DLOPEN_DEPEND}
-	sys-devel/gcc:*
 	x11-libs/libX11[${MULTILIB_USEDEP}]
 	x11-libs/libXext[${MULTILIB_USEDEP}]
 	x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
@@ -98,6 +96,10 @@ RDEPEND="
 "
 DEPEND="
 	${WINE_COMMON_DEPEND}
+	|| (
+		sys-devel/gcc:*
+		sys-libs/compiler-rt:*[atomic-builtins(-)]
+	)
 	sys-kernel/linux-headers
 	x11-base/xorg-proto
 "
@@ -165,9 +167,16 @@ src_prepare() {
 		# drop as a quick fix for now which hopefully should be safe
 		sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
 
-		# needed by Valve's fsync patches if using clang (undef atomic_load_8)
-		sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
-			-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		# note: this is kind-of best effort and ignores llvm slots, rather
+		# than do LLVM_SLOT it may(?) be better to force atomic-builtins
+		# then could drop this altogether in the future
+		if [[ $(tc-get-c-rtlib) == compiler-rt ]] &&
+			has_version 'sys-libs/compiler-rt[-atomic-builtins(-)]'
+		then
+			# needed by Valve's fsync patches if using compiler-rt w/o atomics
+			sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+				-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		fi
 	fi
 
 	# ensure .desktop calls this variant + slot

diff --git a/app-emulation/wine-proton/wine-proton-9.0.2.ebuild b/app-emulation/wine-proton/wine-proton-9.0.2.ebuild
index 4a959910a693..e025b12e1398 100644
--- a/app-emulation/wine-proton/wine-proton-9.0.2.ebuild
+++ b/app-emulation/wine-proton/wine-proton-9.0.2.ebuild
@@ -63,10 +63,8 @@ WINE_DLOPEN_DEPEND="
 	xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
 	xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
 "
-# gcc: for -latomic with clang
 WINE_COMMON_DEPEND="
 	${WINE_DLOPEN_DEPEND}
-	sys-devel/gcc:*
 	x11-libs/libX11[${MULTILIB_USEDEP}]
 	x11-libs/libXext[${MULTILIB_USEDEP}]
 	x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
@@ -102,6 +100,10 @@ RDEPEND="
 "
 DEPEND="
 	${WINE_COMMON_DEPEND}
+	|| (
+		sys-devel/gcc:*
+		sys-libs/compiler-rt:*[atomic-builtins(-)]
+	)
 	sys-kernel/linux-headers
 	x11-base/xorg-proto
 "
@@ -177,9 +179,16 @@ src_prepare() {
 		# drop as a quick fix for now which hopefully should be safe
 		sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
 
-		# needed by Valve's fsync patches if using clang (undef atomic_load_8)
-		sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
-			-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		# note: this is kind-of best effort and ignores llvm slots, rather
+		# than do LLVM_SLOT it may(?) be better to force atomic-builtins
+		# then could drop this altogether in the future
+		if [[ $(tc-get-c-rtlib) == compiler-rt ]] &&
+			has_version 'sys-libs/compiler-rt[-atomic-builtins(-)]'
+		then
+			# needed by Valve's fsync patches if using compiler-rt w/o atomics
+			sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+				-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		fi
 	fi
 
 	# ensure .desktop calls this variant + slot

diff --git a/app-emulation/wine-proton/wine-proton-9.0.3.ebuild b/app-emulation/wine-proton/wine-proton-9.0.3.ebuild
index 1b6c3be815f9..2b91f26fbdd4 100644
--- a/app-emulation/wine-proton/wine-proton-9.0.3.ebuild
+++ b/app-emulation/wine-proton/wine-proton-9.0.3.ebuild
@@ -63,10 +63,8 @@ WINE_DLOPEN_DEPEND="
 	xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
 	xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
 "
-# gcc: for -latomic with clang
 WINE_COMMON_DEPEND="
 	${WINE_DLOPEN_DEPEND}
-	sys-devel/gcc:*
 	x11-libs/libX11[${MULTILIB_USEDEP}]
 	x11-libs/libXext[${MULTILIB_USEDEP}]
 	x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
@@ -102,6 +100,10 @@ RDEPEND="
 "
 DEPEND="
 	${WINE_COMMON_DEPEND}
+	|| (
+		sys-devel/gcc:*
+		sys-libs/compiler-rt:*[atomic-builtins(-)]
+	)
 	sys-kernel/linux-headers
 	x11-base/xorg-proto
 "
@@ -177,9 +179,16 @@ src_prepare() {
 		# drop as a quick fix for now which hopefully should be safe
 		sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
 
-		# needed by Valve's fsync patches if using clang (undef atomic_load_8)
-		sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
-			-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		# note: this is kind-of best effort and ignores llvm slots, rather
+		# than do LLVM_SLOT it may(?) be better to force atomic-builtins
+		# then could drop this altogether in the future
+		if [[ $(tc-get-c-rtlib) == compiler-rt ]] &&
+			has_version 'sys-libs/compiler-rt[-atomic-builtins(-)]'
+		then
+			# needed by Valve's fsync patches if using compiler-rt w/o atomics
+			sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+				-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		fi
 	fi
 
 	# ensure .desktop calls this variant + slot

diff --git a/app-emulation/wine-proton/wine-proton-9999.ebuild b/app-emulation/wine-proton/wine-proton-9999.ebuild
index 66402fb77063..84d47f7e7cab 100644
--- a/app-emulation/wine-proton/wine-proton-9999.ebuild
+++ b/app-emulation/wine-proton/wine-proton-9999.ebuild
@@ -63,10 +63,8 @@ WINE_DLOPEN_DEPEND="
 	xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
 	xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
 "
-# gcc: for -latomic with clang
 WINE_COMMON_DEPEND="
 	${WINE_DLOPEN_DEPEND}
-	sys-devel/gcc:*
 	x11-libs/libX11[${MULTILIB_USEDEP}]
 	x11-libs/libXext[${MULTILIB_USEDEP}]
 	x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
@@ -102,6 +100,10 @@ RDEPEND="
 "
 DEPEND="
 	${WINE_COMMON_DEPEND}
+	|| (
+		sys-devel/gcc:*
+		sys-libs/compiler-rt:*[atomic-builtins(-)]
+	)
 	sys-kernel/linux-headers
 	x11-base/xorg-proto
 "
@@ -177,9 +179,16 @@ src_prepare() {
 		# drop as a quick fix for now which hopefully should be safe
 		sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
 
-		# needed by Valve's fsync patches if using clang (undef atomic_load_8)
-		sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
-			-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		# note: this is kind-of best effort and ignores llvm slots, rather
+		# than do LLVM_SLOT it may(?) be better to force atomic-builtins
+		# then could drop this altogether in the future
+		if [[ $(tc-get-c-rtlib) == compiler-rt ]] &&
+			has_version 'sys-libs/compiler-rt[-atomic-builtins(-)]'
+		then
+			# needed by Valve's fsync patches if using compiler-rt w/o atomics
+			sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+				-i dlls/{ntdll,winevulkan}/Makefile.in || die
+		fi
 	fi
 
 	# ensure .desktop calls this variant + slot


             reply	other threads:[~2024-11-28  5:37 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-28  5:37 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-27 12:30 [gentoo-commits] repo/gentoo:master commit in: app-emulation/wine-proton/ Ionen Wolkens
2025-02-26 20:33 Arthur Zamarin
2024-12-31 23:51 Ionen Wolkens
2024-12-11 21:43 Ionen Wolkens
2024-12-11 21:43 Ionen Wolkens
2024-12-11  8:45 Ionen Wolkens
2024-11-18 23:37 Ionen Wolkens
2024-10-05  8:12 Ionen Wolkens
2024-10-05  8:12 Ionen Wolkens
2024-10-02  4:35 Ionen Wolkens
2024-09-20  7:15 Ionen Wolkens
2024-09-19 21:07 Ionen Wolkens
2024-07-06  7:03 Ionen Wolkens
2024-06-12 23:52 Ionen Wolkens
2024-06-12 23:52 Ionen Wolkens
2024-05-31  6:20 Ionen Wolkens
2024-05-22  3:32 Ionen Wolkens
2024-05-21  3:01 Ionen Wolkens
2024-05-16  2:08 Ionen Wolkens
2024-05-10  4:26 Ionen Wolkens
2024-05-07 14:28 Ionen Wolkens
2024-05-07  7:19 Ionen Wolkens
2024-05-03  0:18 Ionen Wolkens
2024-04-22 20:31 Ionen Wolkens
2024-04-22 20:31 Ionen Wolkens
2024-03-24 18:39 Ionen Wolkens
2024-03-22 12:31 Ionen Wolkens
2024-03-20  7:17 Ionen Wolkens
2024-03-12  4:29 Ionen Wolkens
2024-03-05  6:03 Ionen Wolkens
2024-01-22 23:34 Ionen Wolkens
2024-01-17 16:20 Ionen Wolkens
2024-01-13 13:11 Ionen Wolkens
2024-01-13 13:11 Ionen Wolkens
2024-01-08 21:48 Ionen Wolkens
2024-01-08 12:59 Ionen Wolkens
2024-01-08 12:59 Ionen Wolkens
2024-01-04 14:20 Ionen Wolkens
2023-12-21  6:49 Ionen Wolkens
2023-12-01  8:04 Ionen Wolkens
2023-12-01  6:46 Ionen Wolkens
2023-11-09  6:37 Ionen Wolkens
2023-10-06  9:23 Arthur Zamarin
2023-10-06  6:43 Ionen Wolkens
2023-08-28 12:19 Ionen Wolkens
2023-08-19  9:51 Ionen Wolkens
2023-08-14 10:26 Ionen Wolkens
2023-08-13 19:45 Ionen Wolkens
2023-08-11 10:52 Ionen Wolkens
2023-08-11 10:52 Ionen Wolkens
2023-08-11 10:52 Ionen Wolkens
2023-08-10 10:53 Ionen Wolkens
2023-08-10 10:53 Ionen Wolkens
2023-08-10 10:53 Ionen Wolkens
2023-08-06  4:32 Ionen Wolkens
2023-07-21 20:42 Ionen Wolkens
2023-07-21 20:42 Ionen Wolkens
2023-07-11  5:37 Ionen Wolkens
2023-06-26 10:12 Ionen Wolkens
2023-06-24  4:56 Ionen Wolkens
2023-06-02  6:54 Ionen Wolkens
2023-05-23 17:15 Ionen Wolkens
2023-05-06 11:17 Ionen Wolkens
2023-05-06  9:42 Arthur Zamarin
2023-05-02 19:41 Ionen Wolkens
2023-05-02 16:56 Ionen Wolkens
2023-04-29  9:43 Ionen Wolkens
2023-04-24  3:43 Ionen Wolkens
2023-04-24  3:43 Ionen Wolkens
2023-04-19  4:36 Ionen Wolkens
2023-04-17 20:45 Ionen Wolkens
2023-03-08 10:25 Ionen Wolkens
2023-03-04 12:08 Ionen Wolkens
2023-02-03 19:49 Ionen Wolkens
2023-02-03 19:49 Ionen Wolkens
2022-12-19  7:23 Ionen Wolkens
2022-12-06  1:15 Ionen Wolkens
2022-12-02  3:18 Ionen Wolkens
2022-11-23 23:24 Ionen Wolkens
2022-11-23 22:51 Ionen Wolkens
2022-11-23 22:38 Ionen Wolkens
2022-11-23 20:39 Ionen Wolkens
2022-11-23 20:39 Ionen Wolkens
2022-11-17 14:58 Ionen Wolkens
2022-11-12  2:50 Ionen Wolkens
2022-10-31  0:54 Ionen Wolkens
2022-10-23  7:20 Ionen Wolkens
2022-09-14 23:11 Ionen Wolkens
2022-09-10  9:48 Ionen Wolkens
2022-09-10  9: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=1732772187.a15fa5bb5c73df85a7261af00158780ca309f357.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