SHA256
1
0
forked from pool/xxhash

Compare commits

..

1 Commits

Author SHA256 Message Date
6fbc273ac8 fix usage of DISPATCH=1
- upstream will activate optimization only with -O3 but %{optflags}
set -O2, we patch optflags to use -O3
- DISPATCH=1 seem to be needed on make / make install line call to
obtain an optimized binary, and also get dispatch header installed
in include

Signed-off-by: Bruno Friedmann <bruno@ioda-net.ch>
2024-09-25 15:14:15 +02:00
6 changed files with 46 additions and 52 deletions

View File

@ -17,16 +17,16 @@ In function 'void XXH3_hashLong_internal_loop(xxh_u64*, const xxh_u8*, size_t, c
xxhash.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: xxHash-0.8.3/xxhash.h
Index: xxHash-0.8.2/xxhash.h
===================================================================
--- xxHash-0.8.3.orig/xxhash.h
+++ xxHash-0.8.3/xxhash.h
@@ -2421,7 +2421,7 @@ static void* XXH_memcpy(void* dest, cons
--- 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__))
-# 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,22 +1,16 @@
From: Bruno Pitrus <brunopitrus@hotmail.com>
Date: 2024-05-05 19:35:03+0000
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: xxHash-0.8.3/Makefile
===================================================================
--- xxHash-0.8.3.orig/Makefile
+++ xxHash-0.8.3/Makefile
@@ -483,8 +483,8 @@ test-all: test test32 test-unicode clang
--- xxHash-0.8.2/Makefile.old 2023-07-21 12:01:35.000000000 +0200
+++ xxHash-0.8.2/Makefile 2024-05-05 21:19:32.265851133 +0200
@@ -450,8 +450,8 @@ test-all: test test32 test-unicode clang
.PHONY: test-tools
test-tools:
- CFLAGS=-Werror $(MAKE) -C tests/bench
- CFLAGS=-Werror $(MAKE) -C tests/collisions check
- CFLAGS=-Werror $(MAKE) -C tests/collisions
+ $(MAKE) -C tests/bench
+ $(MAKE) -C tests/collisions check
+ $(MAKE) -C tests/collisions
.PHONY: test-xxh-nnn-sums
test-xxh-nnn-sums: xxhsum_and_links

BIN
v0.8.3.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
xxHash-0.8.2.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,12 +1,3 @@
-------------------------------------------------------------------
Mon Dec 30 19:52:02 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.8.3
* Corrects an edge case in ``XXH3_128bits_withSecretandSeed``
that could generate invalid results.
* xxhash now knows command-line arguments ``--filelist``,
``--files-from``.
-------------------------------------------------------------------
Tue Sep 3 02:11:09 UTC 2024 - Jan Engelhardt <jengelh@inai.de>

View File

@ -17,18 +17,17 @@
Name: xxhash
Version: 0.8.3
Version: 0.8.2
Release: 0
Summary: Non-cryptographic hash algorithm
License: BSD-2-Clause AND GPL-2.0-only
Group: Productivity/Security
URL: https://github.com/Cyan4973/xxHash
Source: https://github.com/Cyan4973/xxHash/archive/v%version.tar.gz
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
BuildRequires: time
%{?suse_build_hwcaps_libs}
%description
@ -50,55 +49,65 @@ Hashes are identical on all platforms.
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
Requires: %{name} = %{version}
Requires: libxxhash0 = %{version}
%description devel
Headers and other development files for xxHash.
%prep
%autosetup -p1 -n xxHash-%version
%autosetup -p1 -n xxHash-%{version}
%build
# upstream make -O3 mandatory to get performance gain
tmpflags="$(echo %{optflags} | sed 's,-O2,-O3,g')"
# ALLOW_AVX just means "we guarantee we policed our %%optflags".
export CFLAGS="%optflags -DXXH_X86DISPATCH_ALLOW_AVX=1"
export CXXFLAGS="$CFLAGS"
export CFLAGS="${tmpflags} -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
%make_build prefix=%{_prefix} libdir=%{_libdir} DISPATCH=1
%install
export CFLAGS="%optflags -DXXH_X86DISPATCH_ALLOW_AVX=1"
export CXXFLAGS="%optflags"
export CFLAGS="${tmpflags} -DXXH_X86DISPATCH_ALLOW_AVX=1"
export CXXFLAGS="${CFLAGS}"
export LDFLAGS="%{?build_ldflags}"
%make_install prefix=%_prefix libdir=%_libdir
rm -rf %buildroot%_libdir/libxxhash.a
%make_install prefix=%{_prefix} libdir=%{_libdir} DISPATCH=1
rm -rf %{buildroot}%{_libdir}/libxxhash.a
%check
export CFLAGS="%optflags"
export CXXFLAGS="%optflags"
export CFLAGS="${tmpflags}"
export CXXFLAGS="${CFLAGS}"
export LDFLAGS="%{?build_ldflags}"
# not safe for parallel execution as it removes xxhash.o and recreates it with different flags
# the list is taken from test-all with non-working/irrelevant ones (such as ones that change the toolchain) removed
%make_build -j1 test test-unicode listL120 trailingWhitespace test-xxh-nnn-sums
%make_build -j1 DISPATCH=1 test test-unicode listL120 trailingWhitespace test-xxh-nnn-sums
%ldconfig_scriptlets -n libxxhash0
%files
%license LICENSE
%doc README.md
%_bindir/xxh*
%_mandir/man1/xxh*
%{_bindir}/xxhsum
%{_bindir}/xxh32sum
%{_bindir}/xxh64sum
%{_bindir}/xxh128sum
%{_mandir}/man1/xxh32sum.*
%{_mandir}/man1/xxh64sum.*
%{_mandir}/man1/xxh128sum.*
%{_mandir}/man1/xxhsum.*
%files -n libxxhash0
%_libdir/libxxhash.so.*
%{_libdir}/libxxhash.so.*
%files devel
%_includedir/*.h
%_libdir/pkgconfig/*.pc
%_libdir/libxxhash.so
%{_includedir}/xxhash.h
%{_includedir}/xxh3.h
%{_includedir}/xxh_x86dispatch.h
%{_libdir}/pkgconfig/libxxhash.pc
%{_libdir}/libxxhash.so
%changelog