[Buildroot] [git commit branch/next] package/ccache: fix build with gcc 12.3

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Aug 21 20:01:29 UTC 2023


commit: https://git.buildroot.net/buildroot/commit/?id=e34063c5be6963cb3fd87e6852af0854ec1c2dc1
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/next

Since the bump of ccache from 4.7.4 to 4.8.2 in Buildroot commit
1db3f0f84449843476c2887d2ea09323c66f33a4 ("package/ccache: bump
version to 4.8.2"), it started failing to build on machines that use
gcc 12.3, due to a bug in gcc:

/home/buildroot/autobuild/instance-0/output-1/build/host-ccache-4.8.2/src/storage/local/LocalStorage.cpp:701:24:   required from here
/home/buildroot/autobuild/instance-0/output-1/build/host-ccache-4.8.2/src/Logging.hpp:33:7: internal compiler error: Segmentation fault
   33 |       Logging::log(std::string_view(message_));                                \
      |       ^~~~~~~

Upstream ccache has committed a workaround to avoid this compiler bug,
which we backport in this commit.

Fixes:

  http://autobuild.buildroot.net/results/cd341365d1c429bfca505a742e86b3090897db23/

Signed-off-by: Bernd Kuhls <bernd at kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
---
 .../0001-fix-Work-around-GCC-12.3-bug-109241.patch | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/package/ccache/0001-fix-Work-around-GCC-12.3-bug-109241.patch b/package/ccache/0001-fix-Work-around-GCC-12.3-bug-109241.patch
new file mode 100644
index 0000000000..42872597cd
--- /dev/null
+++ b/package/ccache/0001-fix-Work-around-GCC-12.3-bug-109241.patch
@@ -0,0 +1,29 @@
+From 689168c292f1ed26c5f4a3070aeb649dad7facb5 Mon Sep 17 00:00:00 2001
+From: Joel Rosdahl <joel at rosdahl.net>
+Date: Tue, 1 Aug 2023 12:30:12 +0200
+Subject: [PATCH] fix: Work around GCC 12.3 bug 109241
+
+See also #1289.
+
+Upstream: https://github.com/ccache/ccache/commit/689168c292f1ed26c5f4a3070aeb649dad7facb5
+
+Signed-off-by: Bernd Kuhls <bernd at kuhls.net>
+---
+ src/storage/local/LocalStorage.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/storage/local/LocalStorage.cpp b/src/storage/local/LocalStorage.cpp
+index 3e5abe5074..d0a904e553 100644
+--- 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;
+           }
+ 



More information about the buildroot mailing list