[tor-commits] [tor/master] Build donna32 with -fomit-frame-pointer

nickm at torproject.org nickm at torproject.org
Fri Mar 1 05:35:36 UTC 2013


commit 97d0872f59b4ac7a56632966ee041782c1152313
Author: Nick Mathewson <nickm at 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





More information about the tor-commits mailing list