SHA256
3
0
forked from pool/xxhash

Accepting request 1198762 from science

- Add inline.patch to resolve FTBFS on gcc-14 + -Og.

OBS-URL: https://build.opensuse.org/request/show/1198762
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xxhash?expand=0&rev=12
This commit is contained in:
Ana Guerrero 2024-09-05 13:46:00 +00:00 committed by Git OBS Bridge
commit 4c134ddc86
5 changed files with 62 additions and 13 deletions

4
_scmsync.obsinfo Normal file
View File

@ -0,0 +1,4 @@
mtime: 1725462627
commit: 679f82e202407e8aea6eb1514bbeb3f5024ded59fc3a4a33a1607268d40dbfb1
url: https://src.opensuse.org/jengelh/xxhash
revision: master

3
build.specials.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9974f310c9154693e3b5c5b8086a7ee66f9dfcbc4ecd446fd795841b8955c242
size 256

32
inline.patch Normal file
View File

@ -0,0 +1,32 @@
From: Jan Engelhardt <jengelh@inai.de>
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

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Tue Sep 3 02:11:09 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Add inline.patch to resolve FTBFS on gcc-14 + -Og.
-------------------------------------------------------------------
Sun May 5 19:35:03 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>

View File

@ -24,9 +24,11 @@ License: BSD-2-Clause AND GPL-2.0-only
Group: Productivity/Security
URL: https://github.com/Cyan4973/xxHash
Source0: https://github.com/Cyan4973/xxHash/archive/v%{version}.tar.gz#/xxHash-%{version}.tar.gz
Patch0: test-tools-do-not-override-cflags.patch
Patch1: test-tools-do-not-override-cflags.patch
Patch2: inline.patch
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: pkg-config
%{?suse_build_hwcaps_libs}
%description
xxHash is a hash algorithm. It completes the SMHasher test suite which
@ -34,38 +36,41 @@ evaluates collision, dispersion and randomness qualities of hash functions.
Hashes are identical on all platforms.
%package -n libxxhash0
Summary: Shared library for xxHash - a non-cryptographic hash algorithm
Summary: Non-cryptographic hash algorithm
License: BSD-2-Clause
Group: System/Libraries
%description -n libxxhash0
Shared library for xxHash - a hash algorithm. It completes the SMHasher test
suite which evaluates collision, dispersion and randomness qualities of hash
functions. Hashes are identical on all platforms.
xxHash is a hash algorithm. It completes the SMHasher test suite which
evaluates collision, dispersion and randomness qualities of hash functions.
Hashes are identical on all platforms.
%package devel
Summary: Development files for xxHash - a non-cryptographic hash algorithm
Summary: Headers for xxHash, a non-cryptographic hash algorithm
License: BSD-2-Clause
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: libxxhash0 = %{version}
%description devel
Development files for xxHash - a hash algorithm. It completes the SMHasher test
suite which evaluates collision, dispersion and randomness qualities of hash
functions. Hashes are identical on all platforms.
Headers and other development files for xxHash.
%prep
%autosetup -p1 -n xxHash-%{version}
%build
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
# ALLOW_AVX just means "we guarantee we policed our %%optflags".
export CFLAGS="%{optflags} -DXXH_X86DISPATCH_ALLOW_AVX=1"
export CXXFLAGS="$CFLAGS"
export LDFLAGS="%{?build_ldflags}"
# DISPATCH=1 if you want AVX2/AVX512. But it does not seem to perform any
# better than the lowest-denomimation code on at least the 1135G7 and 5950X
# CPUs, and for both LP64 as well as ILP32 — it seems to be all within margin
# of error.
%make_build prefix=%{_prefix} libdir=%{_libdir}
%install
export CFLAGS="%{optflags}"
export CFLAGS="%{optflags} -DXXH_X86DISPATCH_ALLOW_AVX=1"
export CXXFLAGS="%{optflags}"
export LDFLAGS="%{?build_ldflags}"
%make_install prefix=%{_prefix} libdir=%{_libdir}