diff --git a/src/ext/ed25519/donna/ed25519-donna.h b/src/ext/ed25519/donna/ed25519-donna.h
index 64561d3288056e88fcc57b2f67c8835d59952843..299c8d90fd197dab5956b24cb0048f140543e33d 100644
--- a/src/ext/ed25519/donna/ed25519-donna.h
+++ b/src/ext/ed25519/donna/ed25519-donna.h
@@ -10,6 +10,16 @@
 
 
 #include "ed25519-donna-portable.h"
+#include "orconfig.h"
+
+#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
+/* Some of the ASM here is very long strings. */
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Woverlength-strings"
+#else
+#pragma GCC diagnostic ignored "-Woverlength-strings"
+#endif
+#endif
 
 #if defined(ED25519_SSE2)
 #else