Closed jonathonf closed 6 years ago
Hmm... yes this is a problem.
The faster ed25519 is only really needed on network controllers that sign a ton of keys, so maybe it should be a build option not the default.
The problem is that it is much much MUCH faster... like 80% CPU reduction on our hosted controllers faster.
Summary
Linking fails when full "hardening" flags are passed during compilation. 1.2.4 was quite happy.
Details
On both Ubuntu 16.04 and Manjaro Linux (Arch-like), linking fails due to the newly-introduced
ext/ed25519-amd64-asm
. PIE is default with newer Clang/GCC, and can also be included with the Debian flagexport DEB_BUILD_MAINT_OPTIONS = hardening=+all
.A workaround is to disable PIE (but that's pretty suboptimal, especially given 1.2.4 was happy with PIE), or disabling the new ASM code via:
Output
Full example build log in Ubuntu 16.04 sbuild environment (building with
clang
): https://launchpadlibrarian.net/366139719/buildlog_ubuntu-xenial-amd64.zerotier-one_1.2.6-0york0~16.04_BUILDING.txt.gzKey parts with
gcc
:and with
clang
: