commit: c1683082f6735325895ab84e5d16801dc7fad2f5 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Aug 8 02:09:48 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Aug 8 02:09:48 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1683082
dev-util/ccache: backport ICE workaround Already fixed in stable GCC but let's backport as it makes life easier for people. Bug: https://bugs.gentoo.org/906310 Bug: https://bugs.gentoo.org/906942 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-util/ccache/ccache-4.8.2.ebuild | 1 + .../files/ccache-4.8.2-gcc-ice-workaround.patch | 25 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/dev-util/ccache/ccache-4.8.2.ebuild b/dev-util/ccache/ccache-4.8.2.ebuild index 782242e5b788..8ec5b78da959 100644 --- a/dev-util/ccache/ccache-4.8.2.ebuild +++ b/dev-util/ccache/ccache-4.8.2.ebuild @@ -62,6 +62,7 @@ PATCHES=( "${FILESDIR}"/${PN}-3.5-nvcc-test.patch "${FILESDIR}"/${PN}-4.0-objdump.patch "${FILESDIR}"/${PN}-4.8-avoid-run-user.patch + "${FILESDIR}"/${P}-gcc-ice-workaround.patch ) src_unpack() { diff --git a/dev-util/ccache/files/ccache-4.8.2-gcc-ice-workaround.patch b/dev-util/ccache/files/ccache-4.8.2-gcc-ice-workaround.patch new file mode 100644 index 000000000000..a638930ad6ad --- /dev/null +++ b/dev-util/ccache/files/ccache-4.8.2-gcc-ice-workaround.patch @@ -0,0 +1,25 @@ +https://bugs.gentoo.org/906310 +https://bugs.gentoo.org/906942 +https://github.com/ccache/ccache/issues/1289 +https://github.com/ccache/ccache/commit/689168c292f1ed26c5f4a3070aeb649dad7facb5 + +From 689168c292f1ed26c5f4a3070aeb649dad7facb5 Mon Sep 17 00:00:00 2001 +From: Joel Rosdahl <j...@rosdahl.net> +Date: Tue, 1 Aug 2023 12:30:12 +0200 +Subject: [PATCH] fix: Work around GCC 12.3 bug 109241 + +See also #1289. +--- a/src/storage/local/LocalStorage.cpp ++++ b/src/storage/local/LocalStorage.cpp +@@ -854,7 +854,9 @@ LocalStorage::recompress(const std::optional<int8_t> level, + auto l2_content_lock = get_level_2_content_lock(l1_index, l2_index); + l2_content_lock.make_long_lived(lock_manager); + if (!l2_content_lock.acquire()) { +- LOG("Failed to acquire content lock for {}/{}", l1_index, l2_index); ++ // LOG_RAW+fmt::format instead of LOG due to GCC 12.3 bug #109241 ++ LOG_RAW(fmt::format( ++ "Failed to acquire content lock for {}/{}", l1_index, l2_index)); + return; + } + +