From 679f82e202407e8aea6eb1514bbeb3f5024ded59fc3a4a33a1607268d40dbfb1 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 3 Sep 2024 04:12:29 +0200 Subject: [PATCH] Add inline.patch --- inline.patch | 32 ++++++++++++++++++++++++++++++++ xxhash.changes | 5 +++++ xxhash.spec | 1 + 3 files changed, 38 insertions(+) create mode 100644 inline.patch diff --git a/inline.patch b/inline.patch new file mode 100644 index 0000000..17111e2 --- /dev/null +++ b/inline.patch @@ -0,0 +1,32 @@ +From: Jan Engelhardt +Date: 2024-09-04 17:08:46.573623857 +0200 +References: https://github.com/Cyan4973/xxHash/issues/943 + +Ditch forced inlining, gcc-14 does not like it when combined with -Og. +(gcc-13 was fine.) And I want everyone to be able to use -Og. + +In function 'void XXH3_hashLong_internal_loop(xxh_u64*, const xxh_u8*, size_t, const xxh_u8*, size_t, XXH3_f_accumulate, XXH3_f_scrambleAcc)', + inlined from 'XXH_NAMESPACEXXH128_hash_t XXH3_hashLong_128b_internal(const void*, size_t, const xxh_u8*, size_t, XXH3_f_accumulate, XXH3_f_scrambleAcc)' at /usr/include/xxhash.h:6416:32, + inlined from 'XXH_NAMESPACEXXH128_hash_t XXH3_hashLong_128b_default(const void*, size_t, XXH64_hash_t, const void*, size_t)' at /usr/include/xxhash.h:6442:39: +/usr/include/xxhash.h:5364:18: error: inlining failed in call to 'always_inline' 'void XXH3_accumulate_scalar(xxh_u64*, const xxh_u8*, const xxh_u8*, size_t)': function not considered for inlining + 5364 | XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(scalar) +/usr/include/xxhash.h:5544:14: note: called from here + 5544 | f_acc(acc, input + n*block_len, secret, nbStripesPerBlock); + +--- + xxhash.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: xxHash-0.8.2/xxhash.h +=================================================================== +--- xxHash-0.8.2.orig/xxhash.h ++++ xxHash-0.8.2/xxhash.h +@@ -2107,7 +2107,7 @@ static void* XXH_memcpy(void* dest, cons + # 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 __inline__ __attribute__((unused)) + # define XXH_NO_INLINE static __attribute__((noinline)) + #elif defined(_MSC_VER) /* Visual Studio */ + # define XXH_FORCE_INLINE static __forceinline diff --git a/xxhash.changes b/xxhash.changes index 6ad13f8..4eecbe6 100644 --- a/xxhash.changes +++ b/xxhash.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Sep 3 02:11:09 UTC 2024 - Jan Engelhardt + +- Add inline.patch to resolve FTBFS on gcc-14 + -Og. + ------------------------------------------------------------------- Sun May 5 19:35:03 UTC 2024 - Bruno Pitrus diff --git a/xxhash.spec b/xxhash.spec index 09142bf..a1bf827 100644 --- a/xxhash.spec +++ b/xxhash.spec @@ -25,6 +25,7 @@ Group: Productivity/Security URL: https://github.com/Cyan4973/xxHash Source0: https://github.com/Cyan4973/xxHash/archive/v%{version}.tar.gz#/xxHash-%{version}.tar.gz Patch1: test-tools-do-not-override-cflags.patch +Patch2: inline.patch BuildRequires: gcc-c++ BuildRequires: pkg-config %{?suse_build_hwcaps_libs}