diff options
author | 2024-06-02 19:50:39 +0200 | |
---|---|---|
committer | 2024-06-02 19:54:06 +0200 | |
commit | 1e3866a781cb9f13107b17d346ce03fcbc09e10c (patch) | |
tree | cdb2a9fb5c2858a6b37b2754a879915ca28db8b5 /games-emulation | |
parent | dev-java/swt: add x11-libs/libX11 to RDEPEND (diff) | |
download | gentoo-1e3866a781cb9f13107b17d346ce03fcbc09e10c.tar.gz gentoo-1e3866a781cb9f13107b17d346ce03fcbc09e10c.tar.bz2 gentoo-1e3866a781cb9f13107b17d346ce03fcbc09e10c.zip |
games-emulation/dolphin: Backport gcc-14 build fix
Thanks to Kostadin Shishmanov for finding the pull request.
Closes: https://bugs.gentoo.org/933203
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'games-emulation')
-rw-r--r-- | games-emulation/dolphin/dolphin-5.0_p20220520-r2.ebuild | 6 | ||||
-rw-r--r-- | games-emulation/dolphin/files/dolphin-5.0_p20220520-gcc-14.patch | 30 |
2 files changed, 35 insertions, 1 deletions
diff --git a/games-emulation/dolphin/dolphin-5.0_p20220520-r2.ebuild b/games-emulation/dolphin/dolphin-5.0_p20220520-r2.ebuild index c1f43ed2cbd5..eb77bc5735c5 100644 --- a/games-emulation/dolphin/dolphin-5.0_p20220520-r2.ebuild +++ b/games-emulation/dolphin/dolphin-5.0_p20220520-r2.ebuild @@ -35,7 +35,11 @@ IUSE=" profile pulseaudio systemd upnp vulkan " -PATCHES=("${FILESDIR}/${P}-libfmt-9.0.0-fix-build.patch") +PATCHES=( + "${FILESDIR}/${P}-libfmt-9.0.0-fix-build.patch" + # https://github.com/dolphin-emu/dolphin/pull/12575 + "${FILESDIR}/${P}-gcc-14.patch" +) RDEPEND=" app-arch/bzip2:= diff --git a/games-emulation/dolphin/files/dolphin-5.0_p20220520-gcc-14.patch b/games-emulation/dolphin/files/dolphin-5.0_p20220520-gcc-14.patch new file mode 100644 index 000000000000..44ffb50ae257 --- /dev/null +++ b/games-emulation/dolphin/files/dolphin-5.0_p20220520-gcc-14.patch @@ -0,0 +1,30 @@ +From 3da2e15e6b95f02f66df461e87c8b896e450fdab Mon Sep 17 00:00:00 2001 +From: Peter Lafreniere <peter@n8pjl.ca> +Date: Sun, 11 Feb 2024 20:55:31 -0500 +Subject: [PATCH] IOFile: avoid clearing errors on null file struct + +When performing a default compilation with recent GCC & glibc, +the use of -Werror=nonnull causes a build error. + +The error is given as IOFile::ClearError() can call std::clearerr() +with a null file, which can trigger a null-pointer dereference in libc. + +Change the std::clearerr() call to be conditional on a file being open. +--- + Source/Core/Common/IOFile.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Source/Core/Common/IOFile.h b/Source/Core/Common/IOFile.h +index 4b12c3188853..b5895333b1be 100644 +--- a/Source/Core/Common/IOFile.h ++++ b/Source/Core/Common/IOFile.h +@@ -116,7 +116,8 @@ class IOFile + void ClearError() + { + m_good = true; +- std::clearerr(m_file); ++ if (IsOpen()) ++ std::clearerr(m_file); + } + + private: |