commit 97d0872f59b4ac7a56632966ee041782c1152313 Author: Nick Mathewson nickm@torproject.org Date: Wed Jan 30 13:08:04 2013 -0500
Build donna32 with -fomit-frame-pointer --- changes/fomit-frame-pointer | 6 ++++++ configure.ac | 13 +++++++++++++ src/common/include.am | 6 ++++-- 3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/changes/fomit-frame-pointer b/changes/fomit-frame-pointer new file mode 100644 index 0000000..6770624 --- /dev/null +++ b/changes/fomit-frame-pointer @@ -0,0 +1,6 @@ + o Minor features (performance): + - If we're using the pure-C 32-bit curve25519_donna implementation + of curve25519, build it with the -fomit-frame-pointer option to + make it go faster on register-starved hosts. This improves our + handshake performance by about 6% on i386 hosts without nacl. + Closes ticket 8109. diff --git a/configure.ac b/configure.ac index f047ab9..5468b96 100644 --- a/configure.ac +++ b/configure.ac @@ -583,6 +583,19 @@ if test x$enable_linker_hardening != xno; then fi
dnl ------------------------------------------------------ +dnl Now see if we have a -fomit-frame-pointer compiler option. + +saved_CFLAGS="$CFLAGS" +TOR_CHECK_CFLAGS(-fomit-frame-pointer) +if test "$saved_CFLAGS" != "$CFLAGS"; then + F_OMIT_FRAME_POINTER='-fomit-frame-pointer' +else + F_OMIT_FRAME_POINTER='' +fi +CFLAGS="$saved_CFLAGS" +AC_SUBST(F_OMIT_FRAME_POINTER) + +dnl ------------------------------------------------------ dnl Where do you live, libnatpmp? And how do we call you? dnl There are no packages for Debian or Redhat as of this patch
diff --git a/src/common/include.am b/src/common/include.am index 808238d..1eb923f 100644 --- a/src/common/include.am +++ b/src/common/include.am @@ -14,9 +14,13 @@ else libor_extra_source= endif
+src_common_libcurve25519_donna_a_CFLAGS= + if BUILD_CURVE25519_DONNA src_common_libcurve25519_donna_a_SOURCES=\ src/ext/curve25519_donna/curve25519-donna.c +src_common_libcurve25519_donna_a_CFLAGS+=\ + @F_OMIT_FRAME_POINTER@ noinst_LIBRARIES+=src/common/libcurve25519_donna.a LIBDONNA=src/common/libcurve25519_donna.a else @@ -30,8 +34,6 @@ LIBDONNA= endif endif
-src_common_libcurve25519_donna_a_CFLAGS = - if CURVE25519_ENABLED libcrypto_extra_source=src/common/crypto_curve25519.c endif