ccache: Fix build with gcc-12

Message ID 20220606105059.1261415-1-mingli.yu@windriver.com
State Accepted, archived
Commit 4f78045a62d562f2c682695329570faa36ce3e0c
Headers show
Series ccache: Fix build with gcc-12 | expand

Commit Message

Yu, Mingli June 6, 2022, 10:50 a.m. UTC
From: Mingli Yu <mingli.yu@windriver.com>

Fix the build failure when debug build is enabled.
Add DEBUG_BUILD = "1" in conf/local.conf.
 $ bitbake ccache
 | /buildarea/tmp/work/core2-64-poky-linux/ccache/4.6.1-r0/ccache-4.6.1/src/third_party/xxhash.h:3932:1: error: inlining failed in call to 'always_inline' 'XXH3_accumulate_512_sse2': function not considered for inlining
 3932 | XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc,
      | ^~~~~~~~~~~~~~~~~~~~~~~~
 /buildarea/tmp/work/core2-64-poky-linux/ccache/4.6.1-r0/ccache-4.6.1/src/third_party/xxhash.h:4369:9: note: called from here
 4369 |         f_acc512(acc,
      |         ^~~~~~~~~~~~~
 4370 |                  in,
      |                  ~~~
 4371 |                  secret + n*XXH_SECRET_CONSUME_RATE);

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
 meta/recipes-devtools/ccache/ccache_4.6.1.bb  |  4 +-
 .../0001-xxhash.h-Fix-build-with-gcc-12.patch | 39 +++++++++++++++++++
 2 files changed, 42 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch

Patch

diff --git a/meta/recipes-devtools/ccache/ccache_4.6.1.bb b/meta/recipes-devtools/ccache/ccache_4.6.1.bb
index 418d1070cd..0d6471ddbc 100644
--- a/meta/recipes-devtools/ccache/ccache_4.6.1.bb
+++ b/meta/recipes-devtools/ccache/ccache_4.6.1.bb
@@ -11,7 +11,9 @@  LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=7a19377a02749d8a1281ed608169b0ee"
 
 DEPENDS = "zstd"
 
-SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz \
+           file://0001-xxhash.h-Fix-build-with-gcc-12.patch \
+"
 SRC_URI[sha256sum] = "59b28a57c3a45e48d6049001999c9f94cd4d3e9b0196994bed9a6a7437ffa3bc"
 
 UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
diff --git a/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch b/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch
new file mode 100644
index 0000000000..4c2623e69d
--- /dev/null
+++ b/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch
@@ -0,0 +1,39 @@ 
+From cfde5ba7d10ae1e9d0c259dd1e7027e9bad8f83c Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 6 Jun 2022 17:53:20 +0800
+Subject: [PATCH] xxhash.h: Fix build with gcc-12
+
+Remove inline attribute to fix below build failure:
+  | /buildarea/tmp/work/core2-64-poky-linux/ccache/4.6.1-r0/ccache-4.6.1/src/third_party/xxhash.h:3932:1: error: inlining failed in call to 'always_inline' 'XXH3_accumulate_512_sse2': function not considered for inlining
+  3932 | XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc,
+       | ^~~~~~~~~~~~~~~~~~~~~~~~
+  /buildarea/tmp/work/core2-64-poky-linux/ccache/4.6.1-r0/ccache-4.6.1/src/third_party/xxhash.h:4369:9: note: called from here
+  4369 |         f_acc512(acc,
+       |         ^~~~~~~~~~~~~
+  4370 |                  in,
+       |                  ~~~
+  4371 |                  secret + n*XXH_SECRET_CONSUME_RATE);
+
+Upstream-Status: Submitted [https://github.com/ccache/ccache/pull/1089]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/third_party/xxhash.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/xxhash.h b/src/third_party/xxhash.h
+index 08ab794..c754e99 100644
+--- a/src/third_party/xxhash.h
++++ b/src/third_party/xxhash.h
+@@ -1501,7 +1501,7 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
+ #  define XXH_NO_INLINE static
+ /* enable inlining hints */
+ #elif defined(__GNUC__) || defined(__clang__)
+-#  define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused))
++#  define XXH_FORCE_INLINE static
+ #  define XXH_NO_INLINE static __attribute__((noinline))
+ #elif defined(_MSC_VER)  /* Visual Studio */
+ #  define XXH_FORCE_INLINE static __forceinline
+-- 
+2.25.1
+