Hello, I'm having some problems using any BLAKE2 backend (tried with BLAKE2B512E, BLAKE2S256E, and BLAKE2SP256E) on an AMD Turion II Neo N40L Dual-Core Processor. Using default, WORM, or SHA3_512E backend works but after switching to a BLAKE2 variant git annex add
and git annex migrate
exit with a SIGILL: add testfile2 error: git-annex died of signal 4
.
information from coredumpctl
Signal: 4 (ILL)
Command Line: /usr/bin/git-annex add testfile2
Message: Process 2481 (git-annex) of user 1000 dumped core.
Stack trace of thread 2481:
#0 0x00007f0db668e3e6 n/a (libHScryptonite-0.25-5E9EuEAz1M1JrY25iIyNbL-ghc8.6.3.so)
#1 0x00007f0db66901f5 blake2b_final (libHScryptonite-0.25-5E9EuEAz1M1JrY25iIyNbL-ghc8.6.3.so)
#2 0x00007f0db6637950 cryptonitezm0zi25zm5E9EuEAzz1M1JrY25iIyNbL_CryptoziHashziBlake2b_zdfHashAlgorithmBlake2bzu15_info (libHScryptonite-0.25-5E9EuEAz1M1JrY25iIyNbL-ghc8.6.3.so)
git annex version
git-annex version: 7.20181211-g426bdbf11
build flags: Assistant Webapp Pairing S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.21 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.1.0 ghc-8.6.3 http-client-0.5.14 persistent-sqlite-2.8.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar hook external
operating system: linux x86_64
supported repository versions: 5 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
local repository version: 7
This is the newest version available in the archlinux repository.
I'd really like to use blake2 since it's a lot faster than sha2/3 and safer than WORM. Any idea on how to solve this issue?
This means that the C implementation of blake2 in the cryptonite library is optimised using an instruction not supported by your CPU.
My first guess is it's SSE, which gets enabled when cryptonite is built with the
support_sse
build flag. That flag is not enabled by default; but perhaps archlinux has enabled it?