[info=04f3caff52d71154ac40d11564546762787031b336dcbd4461dd309136fa4cb8]
OBS-URL: https://build.opensuse.org/package/show/science/xxhash?expand=0&rev=32
This commit is contained in:
commit
29e926eee8
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
10
Makefile
Normal file
10
Makefile
Normal file
@ -0,0 +1,10 @@
|
||||
SHELL=/bin/bash
|
||||
|
||||
test: xh linux-6.6.1.tar linux-6.6.2.tar linux-6.6.3.tar linux-6.6.4.tar linux-6.6.5.tar
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
|
||||
%.tar:
|
||||
wget -O- https://cdn.kernel.org/pub/linux/kernel/v6.x/$@.xz | xz -cd >$@
|
||||
|
||||
xh: xh.cpp
|
||||
g++ -o xh xh.cpp -lxxhash -Wall -O2 -g
|
4
_scmsync.obsinfo
Normal file
4
_scmsync.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
mtime: 1735588143
|
||||
commit: 04f3caff52d71154ac40d11564546762787031b336dcbd4461dd309136fa4cb8
|
||||
url: https://src.opensuse.org/jengelh/xxhash
|
||||
revision: master
|
3
build.specials.obscpio
Normal file
3
build.specials.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:485792ab4096a362be4925eb5030059972f4c96d771fa100bfb0ca37a49a41cc
|
||||
size 264
|
111
cpu-1135g7
Normal file
111
cpu-1135g7
Normal file
@ -0,0 +1,111 @@
|
||||
|
||||
=== test ===
|
||||
|
||||
standard openSUSE xxhash packages of today
|
||||
|
||||
$ make
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.24user 6.69system 0:13.69elapsed 72%CPU (0avgtext+0avgdata 3824maxresident)k
|
||||
0inputs+0outputs (0major+178minor)pagefaults 0swaps
|
||||
14:04 f3:../xx/xxhash $ make
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.29user 6.05system 0:13.04elapsed 71%CPU (0avgtext+0avgdata 3720maxresident)k
|
||||
0inputs+0outputs (0major+178minor)pagefaults 0swaps
|
||||
14:05 f3:../xx/xxhash $ make
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.20user 6.29system 0:13.19elapsed 72%CPU (0avgtext+0avgdata 3664maxresident)k
|
||||
0inputs+0outputs (0major+177minor)pagefaults 0swaps
|
||||
14:05 f3:../xx/xxhash $ make
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.38user 5.91system 0:12.89elapsed 72%CPU (0avgtext+0avgdata 3712maxresident)k
|
||||
0inputs+0outputs (0major+178minor)pagefaults 0swaps
|
||||
|
||||
Mean/Spread: 13.20 ± 0.31 sec (2.3% error)
|
||||
|
||||
|
||||
=== switch packages ===
|
||||
|
||||
# rpm -U ...
|
||||
|
||||
|
||||
=== verify AVX512 is now in use ===
|
||||
|
||||
Watch this space closely.
|
||||
|
||||
$ gdb xh
|
||||
Reading symbols from xh...
|
||||
(gdb) b main
|
||||
Breakpoint 1 at 0x4010b0: file xh.cpp, line 7.
|
||||
(gdb) r <xh.cpp
|
||||
Starting program: /home/jengelh/obs_nosave/zu/home/jengelh/xx/xxhash/xh <xh.cpp
|
||||
[Thread debugging using libthread_db enabled]
|
||||
Using host libthread_db library "/lib64/libthread_db.so.1".
|
||||
|
||||
Breakpoint 1, main () at xh.cpp:7
|
||||
7 auto state = XXH3_createState();
|
||||
(gdb) b XXH_setDispatch
|
||||
Breakpoint 2 at 0x7ffff7f9a6f4: file /usr/src/debug/xxHash-0.8.2/xxh_x86dispatch.c, line 706.
|
||||
(gdb) r
|
||||
Restart?-yes
|
||||
Starting program: /home/jengelh/obs_nosave/zu/home/jengelh/xx/xxhash/xh <xh.cpp
|
||||
[Thread debugging using libthread_db enabled]
|
||||
Using host libthread_db library "/lib64/libthread_db.so.1".
|
||||
|
||||
Breakpoint 2, XXH_setDispatch () at /usr/src/debug/xxHash-0.8.2/xxh_x86dispatch.c:706
|
||||
706 {
|
||||
(gdb) bt
|
||||
#0 XXH_setDispatch () at /usr/src/debug/xxHash-0.8.2/xxh_x86dispatch.c:706
|
||||
#1 0x00007ffff7fca53e in call_init (env=0x7fffffffd998, argv=0x7fffffffd988, argc=1, l=<optimized out>) at dl-init.c:74
|
||||
#2 call_init (l=<optimized out>, argc=1, argv=0x7fffffffd988, env=0x7fffffffd998) at dl-init.c:26
|
||||
#3 0x00007ffff7fca63c in _dl_init (main_map=0x7ffff7fbe000, argc=1, argv=0x7fffffffd988, env=0x7fffffffd998) at dl-init.c:121
|
||||
#4 0x00007ffff7fe2ba0 in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
|
||||
#5 0x0000000000000001 in ?? ()
|
||||
#6 0x00007fffffffde8c in ?? ()
|
||||
#7 0x0000000000000000 in ?? ()
|
||||
(gdb) n
|
||||
707 int vecID = XXH_featureTest();
|
||||
(gdb)
|
||||
719 XXH_g_dispatch = XXH_kDispatch[vecID];
|
||||
(gdb) p vecID
|
||||
$1 = 3 [= XXH_AVX512!]
|
||||
|
||||
|
||||
=== test ===
|
||||
|
||||
$ make test
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.37user 6.16system 0:13.23elapsed 72%CPU (0avgtext+0avgdata 3708maxresident)k
|
||||
0inputs+0outputs (0major+177minor)pagefaults 0swaps
|
||||
14:07 f3:../xx/xxhash $ make test
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.23user 6.27system 0:13.27elapsed 71%CPU (0avgtext+0avgdata 3664maxresident)k
|
||||
0inputs+0outputs (0major+176minor)pagefaults 0swaps
|
||||
14:07 f3:../xx/xxhash $ make test
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.26user 6.77system 0:13.75elapsed 73%CPU (0avgtext+0avgdata 3712maxresident)k
|
||||
0inputs+0outputs (0major+178minor)pagefaults 0swaps
|
||||
14:07 f3:../xx/xxhash $ make test
|
||||
cat linux-6.*.tar{,,,,,,,} | time ./xh
|
||||
5df8e93736b5a2bddd0b324a455b61fc
|
||||
3.19user 6.07system 0:12.96elapsed 71%CPU (0avgtext+0avgdata 3712maxresident)k
|
||||
0inputs+0outputs (0major+178minor)pagefaults 0swaps
|
||||
|
||||
Mean/Spread: 13.30 ± 0.34s (2.5% error)
|
||||
|
||||
== Lessons learned ==
|
||||
|
||||
Prerequisite for good measurement:
|
||||
* consistent(!) error rate (4 individual measurements is a bit on the low side, but ... anyway)
|
||||
|
||||
Result:
|
||||
* The observed 13.2s mean is within the margin of measurement error of the 13.3 mean and viceversa
|
||||
|
||||
Conclusion:
|
||||
* DISPATCH=1 made no impact on this machine
|
32
inline.patch
Normal file
32
inline.patch
Normal 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
|
16
test-tools-do-not-override-cflags.patch
Normal file
16
test-tools-do-not-override-cflags.patch
Normal file
@ -0,0 +1,16 @@
|
||||
From: Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
Date: 2024-05-05 19:35:03+0000
|
||||
|
||||
--- 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
|
||||
+ $(MAKE) -C tests/bench
|
||||
+ $(MAKE) -C tests/collisions
|
||||
|
||||
.PHONY: test-xxh-nnn-sums
|
||||
test-xxh-nnn-sums: xxhsum_and_links
|
18
xh.cpp
Normal file
18
xh.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
#include <xxhash.h>
|
||||
#include <unistd.h>
|
||||
#include <cstdio>
|
||||
|
||||
int main()
|
||||
{
|
||||
auto state = XXH3_createState();
|
||||
XXH3_128bits_reset(state);
|
||||
char buffer[1048576];
|
||||
ssize_t count;
|
||||
while ((count = read(STDIN_FILENO, buffer, sizeof(buffer))) > 0)
|
||||
XXH3_128bits_update(state, buffer, count);
|
||||
XXH128_canonical_t canon{};
|
||||
XXH128_canonicalFromHash(&canon, XXH3_128bits_digest(state));
|
||||
for (auto u : canon.digest)
|
||||
printf("%02x", u);
|
||||
printf("\n");
|
||||
}
|
BIN
xxHash-0.8.2.tar.gz
(Stored with Git LFS)
Normal file
BIN
xxHash-0.8.2.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
158
xxhash.changes
Normal file
158
xxhash.changes
Normal file
@ -0,0 +1,158 @@
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- Fix ftbfs with gcc14:
|
||||
* use correct optflags also in %check
|
||||
* add test-tools-do-not-override-cflags.patch
|
||||
- Execute more tests
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 30 14:43:11 UTC 2023 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||
|
||||
- Make use of openSUSE build flags
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 3 10:00:32 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Update to release 0.8.2
|
||||
* ARM NEON speed improvements; on M1 Pro it is +20% speed for
|
||||
XXH3 and XXH128 (from 30.0 GB/s to 36 GB/s).
|
||||
* Added support for ARM's SVE vector extension.
|
||||
* Resolved some issues with XXH3's s390x vector implementation.
|
||||
- Delete xxhash-avoid-armv6-unaligned-access.patch (should be
|
||||
fixed by c0dd448b), delete 836f4e735cf368542f14005e41d2f84ec29dfd60.patch
|
||||
(merged), delete 15ce80f9f2760609d8cc68cea76d3f3217ab70e1.patch
|
||||
(merged)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 8 21:28:23 UTC 2023 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Add 15ce80f9f2760609d8cc68cea76d3f3217ab70e1.patch: fix build
|
||||
failure on ppc64le when using gcc 7 (boo#1208794).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 20 10:27:32 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- fix racy check execution
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 2 22:20:24 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 0.8.1:
|
||||
* perf : much improved performance for XXH3 streaming variants, notably on
|
||||
gcc and msvc
|
||||
* perf : improved XXH64 speed and latency on small inputs
|
||||
* perf : small XXH32 speed and latency improvement on small inputs of random
|
||||
size
|
||||
* perf : minor stack usage improvement for XXH32 and XXH64
|
||||
* api : new experimental variants XXH3_*_withSecretandSeed()
|
||||
* api : update XXH3_generateSecret(), can no generate secret of any size (>=
|
||||
XXH3_SECRET_SIZE_MIN)
|
||||
* cli : xxhsum can now generate and check XXH3 checksums, using command `-H3`
|
||||
* build: can build xxhash without XXH3, with new build macro XXH_NO_XXH3
|
||||
* build: fix xxh_x86dispatch build with MSVC, by @apankrat
|
||||
* build: XXH_INLINE_ALL can always be used safely, even after XXH_NAMESPACE
|
||||
or a previous XXH_INLINE_ALL
|
||||
* build: improved PPC64LE vector support
|
||||
* install: fix pkgconfig
|
||||
* install: compatibility with Haiku
|
||||
* doc : code comments made compatible with doxygen
|
||||
* misc : XXH_ACCEPT_NULL_INPUT_POINTER is no longer necessary, all functions
|
||||
can accept NULL input pointers, as long as size == 0
|
||||
* misc : complete refactor of CI tests on Github Actions, offering much
|
||||
larger coverage
|
||||
* misc : xxhsum code base split into multiple specialized units, within
|
||||
directory cli/
|
||||
- add 836f4e735cf368542f14005e41d2f84ec29dfd60.patch (fix manpage installation)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 6 17:15:34 CEST 2021 - ro@suse.de
|
||||
|
||||
- add patch xxhash-avoid-armv6-unaligned-access.patch
|
||||
do not expect unaligned accesses to work on armv6, it breaks
|
||||
in our build setup using aarch64 kernels
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 3 05:43:31 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
|
||||
|
||||
- Update to version 0.8.0
|
||||
* api : stabilize XXH3
|
||||
* cli : xxhsum can produce BSD-style lines, with command --tag
|
||||
* cli : xxhsum can parse and check BSD-style lines, using command --check
|
||||
* cli : xxhsum - accepts console input
|
||||
* cli : xxhsum accepts -- separator
|
||||
* cli : fix : print correct default algo for symlinked helpers
|
||||
- Add BR on c++_compiler, needed for test programs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 18 23:57:43 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||
|
||||
- Enable test suite run in %check
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 17 13:17:59 UTC 2019 - Michał Rostecki <mrostecki@opensuse.org>
|
||||
|
||||
- Update to version 0.7.2
|
||||
* Fixed collision ratio of XXH128 for some specific input lengths
|
||||
* Improved VSX and NEON variants
|
||||
* Improved performance of scalar code path (XXH_VECTOR=0),
|
||||
* xxhsum: can generate 128-bit hash with command -H2 (note: for
|
||||
experimental purposes only! XXH128 is not yet frozen)
|
||||
* xxhsum: option -q removes status notifications
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 26 10:06:43 UTC 2019 - simmphonie@opensuse.org
|
||||
|
||||
- update to version 0.7.1
|
||||
- XXH3 updates:
|
||||
* Secret first : the algorithm computation can be altered by
|
||||
providing a "secret", which is any blob of bytes, of
|
||||
size >= XXH3_SECRET_SIZE_MIN.
|
||||
* seed is still available, and acts as a secret generator
|
||||
* As a consequence of these changes, note that new return
|
||||
values of XXH3 are not compatible with v0.7.0
|
||||
* updated ARM NEON variant
|
||||
* Streaming implementation is available
|
||||
* Improve compatibility and performance with Visual Studio
|
||||
* Better integration when using XXH_INLINE_ALL : do not pollute
|
||||
host namespace, use its own macros, such as XXH_ASSERT(), XXH_ALIGN, etc.
|
||||
* 128-bits variant provide helper function, for comparison of hashes.
|
||||
- general improvements:
|
||||
* Better clang generation of rotl instruction
|
||||
* XXH_REROLL build macro, to reduce binary size
|
||||
* Improved cmake script
|
||||
* Full benchmark program provided in /tests/bench
|
||||
|
||||
- update to version 0.7.0
|
||||
- Add XXH3 hash algorithm
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 6 09:25:19 UTC 2018 - Michał Rostecki <mrostecki@suse.de>
|
||||
|
||||
- Remove false information from description - xxHash does not
|
||||
derive from Argon2 algorithm.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 3 21:20:05 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Trim bias from description
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 16 20:10:06 UTC 2018 - t.gruner@katodev.de
|
||||
|
||||
- update to version 0.6.5
|
||||
- Improved performance on small keys, thanks to suggestions from Jens Bauer
|
||||
- New build macro, XXH_INLINE_ALL, extremely effective for small keys of fixed length (see this article for details)
|
||||
- XXH32() : better performance on OS-X clang by disabling auto-vectorization
|
||||
- Improved benchmark measurements accuracy on small keys
|
||||
- Included xxHash specification document
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 21 18:49:27 UTC 2018 - bugs@vdm-design.de
|
||||
|
||||
- Initial package of version 0.6.4
|
112
xxhash.spec
Normal file
112
xxhash.spec
Normal file
@ -0,0 +1,112 @@
|
||||
#
|
||||
# spec file for package xxhash
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: xxhash
|
||||
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
|
||||
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}
|
||||
|
||||
%description
|
||||
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 -n libxxhash0
|
||||
Summary: Non-cryptographic hash algorithm
|
||||
License: BSD-2-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libxxhash0
|
||||
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: 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
|
||||
Headers and other development files for xxHash.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n xxHash-%{version}
|
||||
|
||||
%build
|
||||
# ALLOW_AVX just means "we guarantee we policed our %%optflags".
|
||||
export CFLAGS="%{optflags} -DXXH_X86DISPATCH_ALLOW_AVX=1 -Og"
|
||||
export CXXFLAGS="$CFLAGS"
|
||||
export LDFLAGS="%{?build_ldflags}"
|
||||
export DISPATCH=1
|
||||
# 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} -DXXH_X86DISPATCH_ALLOW_AVX=1 -Og"
|
||||
export CXXFLAGS="%{optflags}"
|
||||
export LDFLAGS="%{?build_ldflags}"
|
||||
export DISPATCH=1
|
||||
%make_install prefix=%{_prefix} libdir=%{_libdir}
|
||||
rm -rf %{buildroot}%{_libdir}/libxxhash.a
|
||||
|
||||
%check
|
||||
export CFLAGS="%{optflags} -DXXH_X86DISPATCH_ALLOW_AVX=1"
|
||||
export CXXFLAGS="%{optflags}"
|
||||
export LDFLAGS="%{?build_ldflags}"
|
||||
export DISPATCH=1
|
||||
# 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
|
||||
|
||||
%ldconfig_scriptlets -n libxxhash0
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_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.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/*
|
||||
%{_libdir}/pkgconfig/libxxhash.pc
|
||||
%{_libdir}/libxxhash.so
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user