nettle: runtime selection of HW-accelerated code

> Include multiple versions of certain functions in the library,
> and select the ones to use at run-time, depending on available
> processor features. Supported for ARM and x86_64.

The current version seems to accelerate AES and SHA families.

Size increase on x86_64 is <10k in our case.

It can make quite some performance difference; I tried
$ time ./result-dev/bin/nettle-hash -a sha256 /some/file/around/2G
And the total CPU time went down from 8.5s to 2s (single thread).
Now it matches the time of openssl
$ time openssl sha256 /some/file/around/2G
Of course, in real life it will be much harder to notice a difference...

Platforms without support for this (e.g. i686) seem to still build fine,
and ARMv7 cross-build also succeeds for me, so hopefully all is OK.
This commit is contained in:
Vladimír Čunát 2020-02-18 12:17:45 +01:00
parent 036c524a2e
commit 03d69128b2
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA

View file

@ -16,6 +16,8 @@ stdenv.mkDerivation ({
nativeBuildInputs = [ gnum4 ];
propagatedBuildInputs = [ gmp ];
configureFlags = [ "--enable-fat" ]; # runtime selection of HW-accelerated code
doCheck = (stdenv.hostPlatform.system != "i686-cygwin" && !stdenv.isDarwin);
enableParallelBuilding = true;