Selaa lähdekoodia

Merge remote-tracking branch 'public/feature8109'

Nick Mathewson 11 vuotta sitten
vanhempi
commit
c72d58cbff
3 muutettua tiedostoa jossa 23 lisäystä ja 2 poistoa
  1. 6 0
      changes/fomit-frame-pointer
  2. 13 0
      configure.ac
  3. 4 2
      src/common/include.am

+ 6 - 0
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.

+ 13 - 0
configure.ac

@@ -583,6 +583,19 @@ if test x$enable_linker_hardening != xno; then
     TOR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check")
 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

+ 4 - 2
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