Add -ftrapv to gcc-hardening ... mostly!
We know there are overflows in curve25519-donna-c32, so we'll have to have that one be fwrapv. Only apply the asan, ubsan, and trapv options to the code that does not need to run in constant time. Those options introduce branches to the code they instrument. (These introduced branches should never actually be taken, so it might _still_ be constant time after all, but branch predictors are complicated enough that I'm not really confident here. Let's aim for safety.) Closes 17983.
This commit is contained in:
parent
bd34edc18d
commit
ce854a8d22
|
@ -132,6 +132,9 @@ uptime-*.json
|
||||||
/src/common/libor.a
|
/src/common/libor.a
|
||||||
/src/common/libor-testing.a
|
/src/common/libor-testing.a
|
||||||
/src/common/libor.lib
|
/src/common/libor.lib
|
||||||
|
/src/common/libor-ctime.a
|
||||||
|
/src/common/libor-ctime-testing.a
|
||||||
|
/src/common/libor-ctime.lib
|
||||||
/src/common/libor-crypto.a
|
/src/common/libor-crypto.a
|
||||||
/src/common/libor-crypto-testing.a
|
/src/common/libor-crypto-testing.a
|
||||||
/src/common/libor-crypto.lib
|
/src/common/libor-crypto.lib
|
||||||
|
|
|
@ -15,8 +15,8 @@ noinst_PROGRAMS=
|
||||||
DISTCLEANFILES=
|
DISTCLEANFILES=
|
||||||
bin_SCRIPTS=
|
bin_SCRIPTS=
|
||||||
AM_CPPFLAGS=
|
AM_CPPFLAGS=
|
||||||
AM_CFLAGS = @TOR_SYSTEMD_CFLAGS@
|
AM_CFLAGS=@TOR_SYSTEMD_CFLAGS@ @CFLAGS_BUGTRAP@
|
||||||
SHELL = @SHELL@
|
SHELL=@SHELL@
|
||||||
|
|
||||||
if COVERAGE_ENABLED
|
if COVERAGE_ENABLED
|
||||||
TESTING_TOR_BINARY="$(top_builddir)/src/or/tor-cov"
|
TESTING_TOR_BINARY="$(top_builddir)/src/or/tor-cov"
|
||||||
|
|
20
acinclude.m4
20
acinclude.m4
|
@ -42,10 +42,11 @@ AC_DEFUN([TOR_DEFINE_CODEPATH],
|
||||||
AC_SUBST(TOR_LDFLAGS_$2)
|
AC_SUBST(TOR_LDFLAGS_$2)
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl 1:flags
|
dnl 1: flags
|
||||||
dnl 2:also try to link (yes: non-empty string)
|
dnl 2: try to link too if this is nonempty.
|
||||||
dnl will set yes or no in $tor_can_link_$1 (as modified by AS_VAR_PUSHDEF)
|
dnl 3: what to do on success compiling
|
||||||
AC_DEFUN([TOR_CHECK_CFLAGS], [
|
dnl 4: what to do on failure compiling
|
||||||
|
AC_DEFUN([TOR_TRY_COMPILE_WITH_CFLAGS], [
|
||||||
AS_VAR_PUSHDEF([VAR],[tor_cv_cflags_$1])
|
AS_VAR_PUSHDEF([VAR],[tor_cv_cflags_$1])
|
||||||
AC_CACHE_CHECK([whether the compiler accepts $1], VAR, [
|
AC_CACHE_CHECK([whether the compiler accepts $1], VAR, [
|
||||||
tor_saved_CFLAGS="$CFLAGS"
|
tor_saved_CFLAGS="$CFLAGS"
|
||||||
|
@ -63,11 +64,20 @@ AC_DEFUN([TOR_CHECK_CFLAGS], [
|
||||||
CFLAGS="$tor_saved_CFLAGS"
|
CFLAGS="$tor_saved_CFLAGS"
|
||||||
])
|
])
|
||||||
if test x$VAR = xyes; then
|
if test x$VAR = xyes; then
|
||||||
CFLAGS="$CFLAGS $1"
|
$3
|
||||||
|
else
|
||||||
|
$4
|
||||||
fi
|
fi
|
||||||
AS_VAR_POPDEF([VAR])
|
AS_VAR_POPDEF([VAR])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl 1:flags
|
||||||
|
dnl 2:also try to link (yes: non-empty string)
|
||||||
|
dnl will set yes or no in $tor_can_link_$1 (as modified by AS_VAR_PUSHDEF)
|
||||||
|
AC_DEFUN([TOR_CHECK_CFLAGS], [
|
||||||
|
TOR_TRY_COMPILE_WITH_CFLAGS($1, $2, CFLAGS="$CFLAGS $1", /bin/true)
|
||||||
|
])
|
||||||
|
|
||||||
dnl 1:flags
|
dnl 1:flags
|
||||||
dnl 2:extra ldflags
|
dnl 2:extra ldflags
|
||||||
dnl 3:extra libraries
|
dnl 3:extra libraries
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
o Minor features (bug-finding):
|
||||||
|
- Tor now builds with -ftrapv by default on compilers that support it.
|
||||||
|
This option detects signed integer overflow, and turns it into a
|
||||||
|
hard-failure. We do not apply this option to code that needs to run
|
||||||
|
in constant time to avoid side-channels; instead, we use -fwrapv.
|
||||||
|
Closes ticket 17983.
|
||||||
|
- When --enable-expensive-hardening is selected, stop applying the clang/gcc
|
||||||
|
sanitizers to code that needs to run in constant-time to avoid side
|
||||||
|
channels: although we are aware of no introduced side-channels, we
|
||||||
|
are not able to prove that this is safe. Related to ticket 17983.
|
||||||
|
|
23
configure.ac
23
configure.ac
|
@ -755,6 +755,11 @@ dnl use it with a build of a library.
|
||||||
all_ldflags_for_check="$TOR_LDFLAGS_zlib $TOR_LDFLAGS_openssl $TOR_LDFLAGS_libevent"
|
all_ldflags_for_check="$TOR_LDFLAGS_zlib $TOR_LDFLAGS_openssl $TOR_LDFLAGS_libevent"
|
||||||
all_libs_for_check="$TOR_ZLIB_LIBS $TOR_LIB_MATH $TOR_LIBEVENT_LIBS $TOR_OPENSSL_LIBS $TOR_SYSTEMD_LIBS $TOR_LIB_WS32 $TOR_LIB_GDI $TOR_CAP_LIBS"
|
all_libs_for_check="$TOR_ZLIB_LIBS $TOR_LIB_MATH $TOR_LIBEVENT_LIBS $TOR_OPENSSL_LIBS $TOR_SYSTEMD_LIBS $TOR_LIB_WS32 $TOR_LIB_GDI $TOR_CAP_LIBS"
|
||||||
|
|
||||||
|
CFLAGS_FTRAPV=
|
||||||
|
CFLAGS_FWRAPV=
|
||||||
|
CFLAGS_ASAN=
|
||||||
|
CFLAGS_UBSAN=
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
|
||||||
#if !defined(__clang__)
|
#if !defined(__clang__)
|
||||||
#error
|
#error
|
||||||
|
@ -777,20 +782,32 @@ m4_ifdef([AS_VAR_IF],[
|
||||||
AS_VAR_POPDEF([can_link])
|
AS_VAR_POPDEF([can_link])
|
||||||
AS_VAR_POPDEF([can_compile])
|
AS_VAR_POPDEF([can_compile])
|
||||||
TOR_CHECK_CFLAGS(-Wstack-protector)
|
TOR_CHECK_CFLAGS(-Wstack-protector)
|
||||||
TOR_CHECK_CFLAGS(-fwrapv)
|
|
||||||
TOR_CHECK_CFLAGS(--param ssp-buffer-size=1)
|
TOR_CHECK_CFLAGS(--param ssp-buffer-size=1)
|
||||||
if test "$bwin32" = "false"; then
|
if test "$bwin32" = "false"; then
|
||||||
TOR_CHECK_CFLAGS(-fPIE)
|
TOR_CHECK_CFLAGS(-fPIE)
|
||||||
TOR_CHECK_LDFLAGS(-pie, "$all_ldflags_for_check", "$all_libs_for_check")
|
TOR_CHECK_LDFLAGS(-pie, "$all_ldflags_for_check", "$all_libs_for_check")
|
||||||
fi
|
fi
|
||||||
|
TOR_TRY_COMPILE_WITH_CFLAGS(-ftrapv, , CFLAGS_FTRAPV="-ftrapv", /bin/true)
|
||||||
|
TOR_TRY_COMPILE_WITH_CFLAGS(-fwrapv, , CFLAGS_FWRAPV="-fwrapv", /bin/true)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$enable_expensive_hardening" = "xyes"; then
|
if test "x$enable_expensive_hardening" = "xyes"; then
|
||||||
TOR_CHECK_CFLAGS([-fsanitize=address])
|
TOR_TRY_COMPILE_WITH_CFLAGS([-fsanitize=address], , CFLAGS_ASAN="-fsanitize=address", /bin/true)
|
||||||
TOR_CHECK_CFLAGS([-fsanitize=undefined])
|
TOR_TRY_COMPILE_WITH_CFLAGS([-fsanitize=undefined], , CFLAGS_UBSAN="-fsanitize=undefined", /bin/true)
|
||||||
TOR_CHECK_CFLAGS([-fno-omit-frame-pointer])
|
TOR_CHECK_CFLAGS([-fno-omit-frame-pointer])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CFLAGS_BUGTRAP="$CFLAGS_FTRAPV $CFLAGS_ASAN $CFLAGS_UBSAN"
|
||||||
|
CFLAGS_CONSTTIME="$CFLAGS_FWRAPV"
|
||||||
|
|
||||||
|
dnl These cflags add bunches of branches, and we haven't been able to
|
||||||
|
dnl persuade ourselves that they're suitable for code that needs to be
|
||||||
|
dnl constant time.
|
||||||
|
AC_SUBST(CFLAGS_BUGTRAP)
|
||||||
|
dnl These cflags are variant ones sutable for code that needs to be
|
||||||
|
dnl constant-time.
|
||||||
|
AC_SUBST(CFLAGS_CONSTTIME)
|
||||||
|
|
||||||
if test "x$enable_linker_hardening" != "xno"; then
|
if test "x$enable_linker_hardening" != "xno"; then
|
||||||
TOR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check")
|
TOR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check")
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
|
|
||||||
noinst_LIBRARIES += \
|
noinst_LIBRARIES += \
|
||||||
src/common/libor.a \
|
src/common/libor.a \
|
||||||
|
src/common/libor-ctime.a \
|
||||||
src/common/libor-crypto.a \
|
src/common/libor-crypto.a \
|
||||||
src/common/libor-event.a
|
src/common/libor-event.a
|
||||||
|
|
||||||
if UNITTESTS_ENABLED
|
if UNITTESTS_ENABLED
|
||||||
noinst_LIBRARIES += \
|
noinst_LIBRARIES += \
|
||||||
src/common/libor-testing.a \
|
src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
src/common/libor-crypto-testing.a \
|
src/common/libor-crypto-testing.a \
|
||||||
src/common/libor-event-testing.a
|
src/common/libor-event-testing.a
|
||||||
endif
|
endif
|
||||||
|
@ -27,12 +29,14 @@ src_common_libcurve25519_donna_a_CFLAGS=
|
||||||
if BUILD_CURVE25519_DONNA
|
if BUILD_CURVE25519_DONNA
|
||||||
src_common_libcurve25519_donna_a_SOURCES=\
|
src_common_libcurve25519_donna_a_SOURCES=\
|
||||||
src/ext/curve25519_donna/curve25519-donna.c
|
src/ext/curve25519_donna/curve25519-donna.c
|
||||||
|
# See bug 13538 -- this code is known to have signed overflow issues.
|
||||||
src_common_libcurve25519_donna_a_CFLAGS+=\
|
src_common_libcurve25519_donna_a_CFLAGS+=\
|
||||||
@F_OMIT_FRAME_POINTER@
|
@F_OMIT_FRAME_POINTER@ @CFLAGS_CONSTTIME@
|
||||||
noinst_LIBRARIES+=src/common/libcurve25519_donna.a
|
noinst_LIBRARIES+=src/common/libcurve25519_donna.a
|
||||||
LIBDONNA=src/common/libcurve25519_donna.a
|
LIBDONNA=src/common/libcurve25519_donna.a
|
||||||
else
|
else
|
||||||
if BUILD_CURVE25519_DONNA_C64
|
if BUILD_CURVE25519_DONNA_C64
|
||||||
|
src_common_libcurve25519_donna_a_CFLAGS+=@CFLAGS_CONSTTIME@
|
||||||
src_common_libcurve25519_donna_a_SOURCES=\
|
src_common_libcurve25519_donna_a_SOURCES=\
|
||||||
src/ext/curve25519_donna/curve25519-donna-c64.c
|
src/ext/curve25519_donna/curve25519-donna-c64.c
|
||||||
noinst_LIBRARIES+=src/common/libcurve25519_donna.a
|
noinst_LIBRARIES+=src/common/libcurve25519_donna.a
|
||||||
|
@ -58,13 +62,21 @@ else
|
||||||
readpassphrase_source=
|
readpassphrase_source=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
LIBOR_CTIME_A_SOURCES = \
|
||||||
|
src/ext/csiphash.c \
|
||||||
|
src/common/di_ops.c
|
||||||
|
|
||||||
|
src_common_libor_ctime_a_SOURCES = $(LIBOR_CTIME_A_SOURCES)
|
||||||
|
src_common_libor_ctime_testing_a_SOURCES = $(LIBOR_CTIME_A_SOURCES)
|
||||||
|
src_common_libor_ctime_a_CFLAGS = @CFLAGS_CONSTTIME@
|
||||||
|
src_common_libor_ctime_testing_a_CFLAGS = @CFLAGS_CONSTTIME@ $(TEST_CFLAGS)
|
||||||
|
|
||||||
LIBOR_A_SOURCES = \
|
LIBOR_A_SOURCES = \
|
||||||
src/common/address.c \
|
src/common/address.c \
|
||||||
src/common/backtrace.c \
|
src/common/backtrace.c \
|
||||||
src/common/compat.c \
|
src/common/compat.c \
|
||||||
src/common/compat_threads.c \
|
src/common/compat_threads.c \
|
||||||
src/common/container.c \
|
src/common/container.c \
|
||||||
src/common/di_ops.c \
|
|
||||||
src/common/log.c \
|
src/common/log.c \
|
||||||
src/common/memarea.c \
|
src/common/memarea.c \
|
||||||
src/common/util.c \
|
src/common/util.c \
|
||||||
|
@ -72,7 +84,6 @@ LIBOR_A_SOURCES = \
|
||||||
src/common/util_process.c \
|
src/common/util_process.c \
|
||||||
src/common/sandbox.c \
|
src/common/sandbox.c \
|
||||||
src/common/workqueue.c \
|
src/common/workqueue.c \
|
||||||
src/ext/csiphash.c \
|
|
||||||
src/ext/trunnel/trunnel.c \
|
src/ext/trunnel/trunnel.c \
|
||||||
$(libor_extra_source) \
|
$(libor_extra_source) \
|
||||||
$(threads_impl_source) \
|
$(threads_impl_source) \
|
||||||
|
|
|
@ -16,7 +16,8 @@ EXTHEADERS = \
|
||||||
|
|
||||||
noinst_HEADERS+= $(EXTHEADERS)
|
noinst_HEADERS+= $(EXTHEADERS)
|
||||||
|
|
||||||
src_ext_ed25519_ref10_libed25519_ref10_a_CFLAGS=
|
src_ext_ed25519_ref10_libed25519_ref10_a_CFLAGS=\
|
||||||
|
@CFLAGS_CONSTTIME@
|
||||||
|
|
||||||
src_ext_ed25519_ref10_libed25519_ref10_a_SOURCES= \
|
src_ext_ed25519_ref10_libed25519_ref10_a_SOURCES= \
|
||||||
src/ext/ed25519/ref10/fe_0.c \
|
src/ext/ed25519/ref10/fe_0.c \
|
||||||
|
@ -93,7 +94,8 @@ noinst_HEADERS += $(ED25519_REF10_HDRS)
|
||||||
LIBED25519_REF10=src/ext/ed25519/ref10/libed25519_ref10.a
|
LIBED25519_REF10=src/ext/ed25519/ref10/libed25519_ref10.a
|
||||||
noinst_LIBRARIES += $(LIBED25519_REF10)
|
noinst_LIBRARIES += $(LIBED25519_REF10)
|
||||||
|
|
||||||
src_ext_ed25519_donna_libed25519_donna_a_CFLAGS= \
|
src_ext_ed25519_donna_libed25519_donna_a_CFLAGS=\
|
||||||
|
@CFLAGS_CONSTTIME@ \
|
||||||
-DED25519_CUSTOMRANDOM \
|
-DED25519_CUSTOMRANDOM \
|
||||||
-DED25519_SUFFIX=_donna
|
-DED25519_SUFFIX=_donna
|
||||||
|
|
||||||
|
@ -135,7 +137,8 @@ noinst_HEADERS += $(ED25519_DONNA_HDRS)
|
||||||
LIBED25519_DONNA=src/ext/ed25519/donna/libed25519_donna.a
|
LIBED25519_DONNA=src/ext/ed25519/donna/libed25519_donna.a
|
||||||
noinst_LIBRARIES += $(LIBED25519_DONNA)
|
noinst_LIBRARIES += $(LIBED25519_DONNA)
|
||||||
|
|
||||||
src_ext_keccak_tiny_libkeccak_tiny_a_CFLAGS=
|
src_ext_keccak_tiny_libkeccak_tiny_a_CFLAGS=\
|
||||||
|
@CFLAGS_CONSTTIME@
|
||||||
|
|
||||||
src_ext_keccak_tiny_libkeccak_tiny_a_SOURCES= \
|
src_ext_keccak_tiny_libkeccak_tiny_a_SOURCES= \
|
||||||
src/ext/keccak-tiny/keccak-tiny-unrolled.c
|
src/ext/keccak-tiny/keccak-tiny-unrolled.c
|
||||||
|
|
|
@ -109,7 +109,7 @@ src_or_libtor_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||||
|
|
||||||
|
|
||||||
src_or_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
src_or_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
||||||
src_or_tor_LDADD = src/or/libtor.a src/common/libor.a \
|
src_or_tor_LDADD = src/or/libtor.a src/common/libor.a src/common/libor-ctime.a \
|
||||||
src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
||||||
src/common/libor-event.a src/trunnel/libor-trunnel.a \
|
src/common/libor-event.a src/trunnel/libor-trunnel.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||||
|
@ -121,6 +121,7 @@ src_or_tor_cov_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||||
src_or_tor_cov_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
src_or_tor_cov_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||||
src_or_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
src_or_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
||||||
src_or_tor_cov_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
|
src_or_tor_cov_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
||||||
src/common/libor-event-testing.a src/trunnel/libor-trunnel-testing.a \
|
src/common/libor-event-testing.a src/trunnel/libor-trunnel-testing.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||||
|
|
|
@ -147,6 +147,7 @@ src_test_test_switch_id_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||||
src_test_test_switch_id_LDFLAGS = @TOR_LDFLAGS_zlib@
|
src_test_test_switch_id_LDFLAGS = @TOR_LDFLAGS_zlib@
|
||||||
src_test_test_switch_id_LDADD = \
|
src_test_test_switch_id_LDADD = \
|
||||||
src/common/libor-testing.a \
|
src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@
|
||||||
|
|
||||||
src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
||||||
|
@ -156,6 +157,7 @@ src_test_test_LDADD = src/or/libtor-testing.a \
|
||||||
$(LIBKECCAK_TINY) \
|
$(LIBKECCAK_TINY) \
|
||||||
$(LIBDONNA) \
|
$(LIBDONNA) \
|
||||||
src/common/libor-testing.a \
|
src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
src/common/libor-event-testing.a \
|
src/common/libor-event-testing.a \
|
||||||
src/trunnel/libor-trunnel-testing.a \
|
src/trunnel/libor-trunnel-testing.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
||||||
|
@ -175,6 +177,7 @@ src_test_test_memwipe_LDFLAGS = $(src_test_test_LDFLAGS)
|
||||||
src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
||||||
@TOR_LDFLAGS_libevent@
|
@TOR_LDFLAGS_libevent@
|
||||||
src_test_bench_LDADD = src/or/libtor.a src/common/libor.a \
|
src_test_bench_LDADD = src/or/libtor.a src/common/libor.a \
|
||||||
|
src/common/libor-ctime.a \
|
||||||
src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
||||||
src/common/libor-event.a src/trunnel/libor-trunnel.a \
|
src/common/libor-event.a src/trunnel/libor-trunnel.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
||||||
|
@ -185,6 +188,7 @@ src_test_test_workqueue_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
||||||
@TOR_LDFLAGS_libevent@
|
@TOR_LDFLAGS_libevent@
|
||||||
src_test_test_workqueue_LDADD = src/or/libtor-testing.a \
|
src_test_test_workqueue_LDADD = src/or/libtor-testing.a \
|
||||||
src/common/libor-testing.a \
|
src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
||||||
src/common/libor-event-testing.a \
|
src/common/libor-event-testing.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
||||||
|
@ -208,6 +212,7 @@ noinst_PROGRAMS+= src/test/test-ntor-cl
|
||||||
src_test_test_ntor_cl_SOURCES = src/test/test_ntor_cl.c
|
src_test_test_ntor_cl_SOURCES = src/test/test_ntor_cl.c
|
||||||
src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||||
src_test_test_ntor_cl_LDADD = src/or/libtor.a src/common/libor.a \
|
src_test_test_ntor_cl_LDADD = src/or/libtor.a src/common/libor.a \
|
||||||
|
src/common/libor-ctime.a \
|
||||||
src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
|
||||||
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
||||||
|
@ -217,6 +222,7 @@ src_test_test_ntor_cl_AM_CPPFLAGS = \
|
||||||
noinst_PROGRAMS += src/test/test-bt-cl
|
noinst_PROGRAMS += src/test/test-bt-cl
|
||||||
src_test_test_bt_cl_SOURCES = src/test/test_bt_cl.c
|
src_test_test_bt_cl_SOURCES = src/test/test_bt_cl.c
|
||||||
src_test_test_bt_cl_LDADD = src/common/libor-testing.a \
|
src_test_test_bt_cl_LDADD = src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
@TOR_LIB_MATH@ \
|
@TOR_LIB_MATH@ \
|
||||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@
|
@TOR_LIB_WS32@ @TOR_LIB_GDI@
|
||||||
src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||||
|
|
|
@ -7,19 +7,23 @@ endif
|
||||||
|
|
||||||
src_tools_tor_resolve_SOURCES = src/tools/tor-resolve.c
|
src_tools_tor_resolve_SOURCES = src/tools/tor-resolve.c
|
||||||
src_tools_tor_resolve_LDFLAGS =
|
src_tools_tor_resolve_LDFLAGS =
|
||||||
src_tools_tor_resolve_LDADD = src/common/libor.a @TOR_LIB_MATH@ @TOR_LIB_WS32@
|
src_tools_tor_resolve_LDADD = src/common/libor.a \
|
||||||
|
src/common/libor-ctime.a \
|
||||||
|
@TOR_LIB_MATH@ @TOR_LIB_WS32@
|
||||||
|
|
||||||
if COVERAGE_ENABLED
|
if COVERAGE_ENABLED
|
||||||
src_tools_tor_cov_resolve_SOURCES = src/tools/tor-resolve.c
|
src_tools_tor_cov_resolve_SOURCES = src/tools/tor-resolve.c
|
||||||
src_tools_tor_cov_resolve_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
src_tools_tor_cov_resolve_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||||
src_tools_tor_cov_resolve_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
src_tools_tor_cov_resolve_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||||
src_tools_tor_cov_resolve_LDADD = src/common/libor-testing.a \
|
src_tools_tor_cov_resolve_LDADD = src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
@TOR_LIB_MATH@ @TOR_LIB_WS32@
|
@TOR_LIB_MATH@ @TOR_LIB_WS32@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
src_tools_tor_gencert_SOURCES = src/tools/tor-gencert.c
|
src_tools_tor_gencert_SOURCES = src/tools/tor-gencert.c
|
||||||
src_tools_tor_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
src_tools_tor_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||||
src_tools_tor_gencert_LDADD = src/common/libor.a src/common/libor-crypto.a \
|
src_tools_tor_gencert_LDADD = src/common/libor.a src/common/libor-crypto.a \
|
||||||
|
src/common/libor-ctime.a \
|
||||||
$(LIBKECCAK_TINY) \
|
$(LIBKECCAK_TINY) \
|
||||||
$(LIBDONNA) \
|
$(LIBDONNA) \
|
||||||
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||||
|
@ -31,6 +35,7 @@ src_tools_tor_cov_gencert_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||||
src_tools_tor_cov_gencert_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
src_tools_tor_cov_gencert_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||||
src_tools_tor_cov_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
src_tools_tor_cov_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||||
src_tools_tor_cov_gencert_LDADD = src/common/libor-testing.a \
|
src_tools_tor_cov_gencert_LDADD = src/common/libor-testing.a \
|
||||||
|
src/common/libor-ctime-testing.a \
|
||||||
src/common/libor-crypto-testing.a \
|
src/common/libor-crypto-testing.a \
|
||||||
$(LIBKECCAK_TINY) \
|
$(LIBKECCAK_TINY) \
|
||||||
$(LIBDONNA) \
|
$(LIBDONNA) \
|
||||||
|
@ -40,7 +45,9 @@ endif
|
||||||
|
|
||||||
src_tools_tor_checkkey_SOURCES = src/tools/tor-checkkey.c
|
src_tools_tor_checkkey_SOURCES = src/tools/tor-checkkey.c
|
||||||
src_tools_tor_checkkey_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
src_tools_tor_checkkey_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||||
src_tools_tor_checkkey_LDADD = src/common/libor.a src/common/libor-crypto.a \
|
src_tools_tor_checkkey_LDADD = src/common/libor.a \
|
||||||
|
src/common/libor-ctime.a \
|
||||||
|
src/common/libor-crypto.a \
|
||||||
$(LIBKECCAK_TINY) \
|
$(LIBKECCAK_TINY) \
|
||||||
$(LIBDONNA) \
|
$(LIBDONNA) \
|
||||||
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||||
|
|
Loading…
Reference in New Issue