clang-10 produces a warning about excessive stack usage, as well as rather unoptimized object code when CONFIG_FORTIFY_SOURCE is set:
lib/crypto/curve25519-hacl64.c:759:6: error: stack frame size of 2400 bytes in function 'curve25519_generic' [-Werror,-Wframe-larger-than=] Jason Donenfeld managed to track this down to the usage of CONFIG_FORTIFY_SOURCE, and I found a minimal test case that illustrates this happening on clang-10 but not clang-9 or clang-11. To work around this, turn off fortification in this file. Link: https://bugs.llvm.org/show_bug.cgi?id=45802 Cc: Jason A. Donenfeld <ja...@zx2c4.com> Signed-off-by: Arnd Bergmann <a...@arndb.de> --- lib/crypto/curve25519-hacl64.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/crypto/curve25519-hacl64.c b/lib/crypto/curve25519-hacl64.c index c7de61829a66..87adeb4f9276 100644 --- a/lib/crypto/curve25519-hacl64.c +++ b/lib/crypto/curve25519-hacl64.c @@ -10,6 +10,10 @@ * integer types. */ +#if (CONFIG_CLANG_VERSION >= 100000) && (CONFIG_CLANG_VERSION < 110000) +#define __NO_FORTIFY /* https://bugs.llvm.org/show_bug.cgi?id=45802 */ +#endif + #include <asm/unaligned.h> #include <crypto/curve25519.h> #include <linux/string.h> -- 2.26.0