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