commit: 1109347a0b07161d08e96bf82608361d24a18a3f Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Tue Jul 2 04:48:07 2024 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Tue Jul 2 05:17:04 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1109347a
games-emulation/pcsx2: fix build with musl Originally thought would only need _GNU_SOURCE, but there is a bit more to the fix 7zip upstream did in bug #928730. Could still patch but can go for the easy solution which will use neither cpu_set_t nor (more importantly) pthread_attr_setaffinity_np that musl lacks. Also fix a different musl issue only affecting >=pcsx2-1.7.5913, workaround imported from Chimera Linux. Closes: https://bugs.gentoo.org/935298 Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> .../pcsx2/files/pcsx2-1.7.5913-musl-cache.patch | 20 ++++++++++++++++++++ games-emulation/pcsx2/pcsx2-1.7.5835.ebuild | 4 ++++ games-emulation/pcsx2/pcsx2-1.7.5913.ebuild | 5 +++++ games-emulation/pcsx2/pcsx2-9999.ebuild | 5 +++++ 4 files changed, 34 insertions(+) diff --git a/games-emulation/pcsx2/files/pcsx2-1.7.5913-musl-cache.patch b/games-emulation/pcsx2/files/pcsx2-1.7.5913-musl-cache.patch new file mode 100644 index 000000000000..3383904fee48 --- /dev/null +++ b/games-emulation/pcsx2/files/pcsx2-1.7.5913-musl-cache.patch @@ -0,0 +1,20 @@ +Patch adapted from [1]: + + musl doesn't expose these sysconf values, so just use the loop + below that reads them out of sysfs coherency_line_size only + +[1] https://github.com/chimera-linux/cports/blob/114b576aee3ebc25b48ac120da1a1093dcc4365f/user/pcsx2/patches/cache.patch +--- a/common/Linux/LnxHostSys.cpp ++++ b/common/Linux/LnxHostSys.cpp +@@ -143,7 +143,11 @@ + size_t HostSys::GetRuntimeCacheLineSize() + { ++ #if defined(__GLIBC__) + int l1i = sysconf(_SC_LEVEL1_DCACHE_LINESIZE); + int l1d = sysconf(_SC_LEVEL1_ICACHE_LINESIZE); + int res = (l1i > l1d) ? l1i : l1d; ++ #else ++ int res = 0; ++ #endif + for (int index = 0; index < 16; index++) + { diff --git a/games-emulation/pcsx2/pcsx2-1.7.5835.ebuild b/games-emulation/pcsx2/pcsx2-1.7.5835.ebuild index 87e19f866161..ece5dfc93cc5 100644 --- a/games-emulation/pcsx2/pcsx2-1.7.5835.ebuild +++ b/games-emulation/pcsx2/pcsx2-1.7.5835.ebuild @@ -105,6 +105,10 @@ src_configure() { strip-unsupported-flags fi + # pthread_attr_setaffinity_np is not supported on musl, may be possible + # to remove if bundled lzma code is updated like 7zip did (bug #935298) + use elibc_musl && append-cppflags -DZ7_AFFINITY_DISABLE + local mycmakeargs=( -DBUILD_SHARED_LIBS=no -DDISABLE_ADVANCE_SIMD=yes diff --git a/games-emulation/pcsx2/pcsx2-1.7.5913.ebuild b/games-emulation/pcsx2/pcsx2-1.7.5913.ebuild index f8d4b9f5a3aa..deabb28cc4af 100644 --- a/games-emulation/pcsx2/pcsx2-1.7.5913.ebuild +++ b/games-emulation/pcsx2/pcsx2-1.7.5913.ebuild @@ -81,6 +81,7 @@ PATCHES=( "${FILESDIR}"/${PN}-1.7.5232-cubeb-automagic.patch "${FILESDIR}"/${PN}-1.7.5835-vanilla-shaderc.patch "${FILESDIR}"/${PN}-1.7.5855-no-libbacktrace.patch + "${FILESDIR}"/${PN}-1.7.5913-musl-cache.patch ) src_prepare() { @@ -107,6 +108,10 @@ src_configure() { strip-unsupported-flags fi + # pthread_attr_setaffinity_np is not supported on musl, may be possible + # to remove if bundled lzma code is updated like 7zip did (bug #935298) + use elibc_musl && append-cppflags -DZ7_AFFINITY_DISABLE + local mycmakeargs=( -DBUILD_SHARED_LIBS=no -DDISABLE_ADVANCE_SIMD=yes diff --git a/games-emulation/pcsx2/pcsx2-9999.ebuild b/games-emulation/pcsx2/pcsx2-9999.ebuild index f8d4b9f5a3aa..deabb28cc4af 100644 --- a/games-emulation/pcsx2/pcsx2-9999.ebuild +++ b/games-emulation/pcsx2/pcsx2-9999.ebuild @@ -81,6 +81,7 @@ PATCHES=( "${FILESDIR}"/${PN}-1.7.5232-cubeb-automagic.patch "${FILESDIR}"/${PN}-1.7.5835-vanilla-shaderc.patch "${FILESDIR}"/${PN}-1.7.5855-no-libbacktrace.patch + "${FILESDIR}"/${PN}-1.7.5913-musl-cache.patch ) src_prepare() { @@ -107,6 +108,10 @@ src_configure() { strip-unsupported-flags fi + # pthread_attr_setaffinity_np is not supported on musl, may be possible + # to remove if bundled lzma code is updated like 7zip did (bug #935298) + use elibc_musl && append-cppflags -DZ7_AFFINITY_DISABLE + local mycmakeargs=( -DBUILD_SHARED_LIBS=no -DDISABLE_ADVANCE_SIMD=yes