-
Notifications
You must be signed in to change notification settings - Fork 835
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Build fails on aarch64 with LTO #8148
Comments
Hi @vifino , Please try rebuilding with your mcpu/march args set to |
Hey @kareem-wolfssl, it probably would compile, except then it would require the crypto extensions, no? |
If you are trying to build for a system without crypto ASM extensions, you will need to remove asm from your --enable-sp line and add --disable-asm. |
To be clear: Building 5.7.2 for Disabling all of the previous optimized implementations because of a new implementation does not seem like a good solution to me but rather like a big regression. Please gate the part requiring |
Hi @vifino , I think the difference between the versions is that we try and enable --enable-armasm by default. Can you please try with Thanks, |
Hey @dgarske. Yes, the code now compiles without error. I find the naming of the What options would yield the fastest code on aarch64 |
Hi @vifino , Yes for the aarch64 the As of right now the only way to use the aarch64 speedups is with the crypto extensions, however I believe it is possible to enable the aarch32 assembly speedups, which would still be significantly faster than the C implementation. Which algorithms are you interested in improving performance for? Based on that feedback I can make a recommendation for Raspberry Pi 4 build options to use. Thanks, |
Hey @dgarske, I maintain the wolfSSL derivation for NixOS and would like to ship the most optimal general configuration for our users. No specific benchmarks I'm tuning for, but we're not storage-bound. For For aarch64, our target is plain |
Hi @vifino, Unfortunately we don't support assembly for Aarch64 armv8-a. That is, there is only assembly when the crypto extensions are available. Is it possible to have different builds for different versions of ARMv8-A? Sean |
Hey @SparkiDev, it's complicated. While there is the possibility of building the Nix derivations targeting armv8-a+crypto or similar, those are rarely used on anything but Darwin/Apple Silicon, as the supported linux target is plain So, realistically, the answer is "no" - 99% of |
Hi @vifino, I understand. I'll let you know when I have a PR for this work. Sean |
Hi @vifino The PR has been merged. Let us know id this fixes your issue. Thanks, |
Contact Details
Here, on GitHub, preferrably.
Version
5.7.4
Description
The build fails with error messages like the following on aarch64 Linux machines, which should compile wolfssl for
-mcpu=armv8-a
with LTO. 5.7.2 worked fine../configure flags:
--disable-static --disable-dependency-tracking --prefix=/nix/store/q5adnsfcgdhbcc5siq3c5v8w5d9h19dr-wolfssl-all-5.7.4 --bindir=/nix/store/q5adnsfcgdhbcc5siq3c5v8w5d9h19dr-wolfssl-all-5.7.4/bin --sbindir=/nix/store/q5adnsfcgdhbcc5siq3c5v8w5d9h19dr-wolfssl-all-5.7.4/sbin --includedir=/nix/store/l33016xyxb23f8l4v0hbw7kx086hssff-wolfssl-all-5.7.4-dev/include --oldincludedir=/nix/store/l33016xyxb23f8l4v0hbw7kx086hssff-wolfssl-all-5.7.4-dev/include --mandir=/nix/store/q5adnsfcgdhbcc5siq3c5v8w5d9h19dr-wolfssl-all-5.7.4/share/man --infodir=/nix/store/q5adnsfcgdhbcc5siq3c5v8w5d9h19dr-wolfssl-all-5.7.4/share/info --docdir=/nix/store/fjivg6dwixisnz8vs29d74mkk0ch4f6d-wolfssl-all-5.7.4-doc/share/doc/wolfssl --libdir=/nix/store/bkkhgrpb580lvqgvwr06750pk9j12sjr-wolfssl-all-5.7.4-lib/lib --libexecdir=/nix/store/bkkhgrpb580lvqgvwr06750pk9j12sjr-wolfssl-all-5.7.4-lib/libexec --localedir=/nix/store/bkkhgrpb580lvqgvwr06750pk9j12sjr-wolfssl-all-5.7.4-lib/share/locale --enable-all --enable-reproducible-build --enable-pkcs11 --enable-writedup --enable-base64encode --enable-bigcache --enable-sp=yes,asm --enable-sp-math-all --enable-harden CC=gcc
CFLAGS contain
-fPIC -O2 -U_FORTIFY_SOURCE -Wformat -Wformat-security -Werror=format-security -fzero-call-used-regs=used-gpr -fstack-protector-strong --param ssp-buffer-size=4 -fno-strict-overflow -march=armv8-a
LDFLAGS contain
-flto
Reproduction steps
git clone -b wolfssl-5.7.4 --depth=1 https://github.com/vifino/nixpkgs
nix-build -A wolfssl
Relevant log output
The text was updated successfully, but these errors were encountered: