summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch23
-rw-r--r--var/spack/repos/builtin/packages/ccache/package.py2
2 files changed, 25 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch b/var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch
new file mode 100644
index 0000000000..638d76a2c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch
@@ -0,0 +1,23 @@
+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 <joel@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;
+ }
diff --git a/var/spack/repos/builtin/packages/ccache/package.py b/var/spack/repos/builtin/packages/ccache/package.py
index 06b1eb0968..0b3045a43a 100644
--- a/var/spack/repos/builtin/packages/ccache/package.py
+++ b/var/spack/repos/builtin/packages/ccache/package.py
@@ -72,6 +72,8 @@ class Ccache(CMakePackage):
conflicts("%clang@:7", when="@4.7:")
conflicts("%clang@:4", when="@4.4:")
+ patch("fix-gcc-12.patch", when="%gcc@12")
+
def cmake_args(self):
return [
self.define("ENABLE_TESTING", False),