mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-23 20:03:31 +01:00
Start splitting src/or
This is a very gentle commit that just lays the groundwork in the build system: it puts the include files to build libtor-app.a into src/core, and to build the tor executable into src/app. The executable is now "src/app/tor".
This commit is contained in:
parent
4eac5c6ce6
commit
81cb0afb2b
19
.gitignore
vendored
19
.gitignore
vendored
@ -206,16 +206,15 @@ uptime-*.json
|
||||
/src/lib/libtor-wallclock.a
|
||||
/src/lib/libtor-wallclock-testing.a
|
||||
|
||||
# /src/or/
|
||||
/src/or/Makefile
|
||||
/src/or/Makefile.in
|
||||
/src/or/tor
|
||||
/src/or/tor.exe
|
||||
/src/or/tor-cov
|
||||
/src/or/tor-cov.exe
|
||||
/src/or/libtor-app.a
|
||||
/src/or/libtor-app-testing.a
|
||||
/src/or/libtor.lib
|
||||
# /src/tor
|
||||
/src/core/libtor-app.a
|
||||
/src/core/libtor-app-testing.a
|
||||
|
||||
# /src/app
|
||||
/src/app/tor
|
||||
/src/app/tor.exe
|
||||
/src/app/tor-cov
|
||||
/src/app/tor-cov.exe
|
||||
|
||||
# /src/rust
|
||||
/src/rust/.cargo/config
|
||||
|
@ -25,9 +25,9 @@ AM_CFLAGS=@TOR_SYSTEMD_CFLAGS@ @CFLAGS_BUGTRAP@ @TOR_LZMA_CFLAGS@ @TOR_ZSTD_CFLA
|
||||
SHELL=@SHELL@
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
TESTING_TOR_BINARY=$(top_builddir)/src/or/tor-cov$(EXEEXT)
|
||||
TESTING_TOR_BINARY=$(top_builddir)/src/app/tor-cov$(EXEEXT)
|
||||
else
|
||||
TESTING_TOR_BINARY=$(top_builddir)/src/or/tor$(EXEEXT)
|
||||
TESTING_TOR_BINARY=$(top_builddir)/src/app/tor$(EXEEXT)
|
||||
endif
|
||||
|
||||
if USE_RUST
|
||||
@ -108,7 +108,7 @@ TOR_CRYPTO_TESTING_LIBS = \
|
||||
|
||||
# All static libraries used to link tor.
|
||||
TOR_INTERNAL_LIBS = \
|
||||
src/or/libtor-app.a \
|
||||
src/core/libtor-app.a \
|
||||
src/lib/libtor-compress.a \
|
||||
src/lib/libtor-evloop.a \
|
||||
$(TOR_CRYPTO_LIBS) \
|
||||
@ -119,7 +119,7 @@ TOR_INTERNAL_LIBS = \
|
||||
# Variants of the above for linking the testing variant of tor (for coverage
|
||||
# and tests)
|
||||
TOR_INTERNAL_TESTING_LIBS = \
|
||||
src/or/libtor-app-testing.a \
|
||||
src/core/libtor-app-testing.a \
|
||||
src/lib/libtor-compress-testing.a \
|
||||
src/lib/libtor-evloop-testing.a \
|
||||
$(TOR_CRYPTO_TESTING_LIBS) \
|
||||
|
@ -28,7 +28,7 @@ Jenkins
|
||||
Valgrind
|
||||
--------
|
||||
|
||||
valgrind --leak-check=yes --error-limit=no --show-reachable=yes src/or/tor
|
||||
valgrind --leak-check=yes --error-limit=no --show-reachable=yes src/app/tor
|
||||
|
||||
(Note that if you get a zillion openssl warnings, you will also need to
|
||||
pass `--undef-value-errors=no` to valgrind, or rebuild your openssl
|
||||
@ -232,10 +232,10 @@ Beforehand, install google-perftools.
|
||||
Now you can run Tor with profiling enabled, and use the pprof utility to look at
|
||||
performance! See the gperftools manual for more info, but basically:
|
||||
|
||||
2. Run `env CPUPROFILE=/tmp/profile src/or/tor -f <path/torrc>`. The profile file
|
||||
2. Run `env CPUPROFILE=/tmp/profile src/app/tor -f <path/torrc>`. The profile file
|
||||
is not written to until Tor finishes execuction.
|
||||
|
||||
3. Run `pprof src/or/tor /tm/profile` to start the REPL.
|
||||
3. Run `pprof src/app/tor /tm/profile` to start the REPL.
|
||||
|
||||
Generating and analyzing a callgraph
|
||||
------------------------------------
|
||||
|
@ -7,7 +7,7 @@ my %torrcSampleOptions = ();
|
||||
my %manPageOptions = ();
|
||||
|
||||
# Load the canonical list as actually accepted by Tor.
|
||||
open(F, "@abs_top_builddir@/src/or/tor --list-torrc-options |") or die;
|
||||
open(F, "@abs_top_builddir@/src/app/tor --list-torrc-options |") or die;
|
||||
while (<F>) {
|
||||
next if m!\[notice\] Tor v0\.!;
|
||||
if (m!^([A-Za-z0-9_]+)!) {
|
||||
|
38
src/app/include.am
Normal file
38
src/app/include.am
Normal file
@ -0,0 +1,38 @@
|
||||
|
||||
bin_PROGRAMS+= src/app/tor
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
noinst_PROGRAMS+= src/app/tor-cov
|
||||
endif
|
||||
|
||||
noinst_HEADERS += \
|
||||
src/app/ntmain.h
|
||||
|
||||
src_app_tor_SOURCES = src/app/tor_main.c
|
||||
if BUILD_NT_SERVICES
|
||||
src_app_tor_SOURCES += src/app/ntmain.c
|
||||
endif
|
||||
|
||||
# -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
|
||||
# This seems to matter nowhere but on windows, but I assure you that it
|
||||
# matters a lot there, and is quite hard to debug if you forget to do it.
|
||||
|
||||
src_app_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
||||
src_app_tor_LDADD = $(TOR_INTERNAL_LIBS) \
|
||||
$(rust_ldadd) \
|
||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
|
||||
@CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@ \
|
||||
@TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
src_app_tor_cov_SOURCES = $(src_app_tor_SOURCES)
|
||||
src_app_tor_cov_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_app_tor_cov_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_app_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
||||
src_app_tor_cov_LDADD = $(TOR_INTERNAL_TESTING_LIBS) \
|
||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ \
|
||||
@CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@ \
|
||||
@TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
|
||||
endif
|
@ -22,7 +22,7 @@
|
||||
#include "or/or.h"
|
||||
#include "or/config.h"
|
||||
#include "or/main.h"
|
||||
#include "or/ntmain.h"
|
||||
#include "app/ntmain.h"
|
||||
#include "lib/log/win32err.h"
|
||||
#include "lib/fs/winlib.h"
|
||||
#include "lib/evloop/compat_libevent.h"
|
@ -1,21 +1,10 @@
|
||||
bin_PROGRAMS+= src/or/tor
|
||||
|
||||
noinst_LIBRARIES += \
|
||||
src/or/libtor-app.a
|
||||
src/core/libtor-app.a
|
||||
if UNITTESTS_ENABLED
|
||||
noinst_LIBRARIES += \
|
||||
src/or/libtor-app-testing.a
|
||||
src/core/libtor-app-testing.a
|
||||
endif
|
||||
if COVERAGE_ENABLED
|
||||
noinst_PROGRAMS+= src/or/tor-cov
|
||||
endif
|
||||
|
||||
if BUILD_NT_SERVICES
|
||||
tor_platform_source=src/or/ntmain.c
|
||||
else
|
||||
tor_platform_source=
|
||||
endif
|
||||
|
||||
EXTRA_DIST+= src/or/ntmain.c src/or/Makefile.nmake
|
||||
|
||||
LIBTOR_APP_A_SOURCES = \
|
||||
src/or/addressmap.c \
|
||||
@ -110,8 +99,7 @@ LIBTOR_APP_A_SOURCES = \
|
||||
src/or/torcert.c \
|
||||
src/or/tor_api.c \
|
||||
src/or/voting_schedule.c \
|
||||
src/or/onion_ntor.c \
|
||||
$(tor_platform_source)
|
||||
src/or/onion_ntor.c
|
||||
|
||||
#
|
||||
# Modules are conditionnally compiled in tor starting here. We add the C files
|
||||
@ -131,53 +119,26 @@ if BUILD_MODULE_DIRAUTH
|
||||
LIBTOR_APP_A_SOURCES += $(MODULE_DIRAUTH_SOURCES)
|
||||
endif
|
||||
|
||||
src_or_libtor_app_a_SOURCES = $(LIBTOR_APP_A_SOURCES)
|
||||
src_core_libtor_app_a_SOURCES = $(LIBTOR_APP_A_SOURCES)
|
||||
if UNITTESTS_ENABLED
|
||||
|
||||
# Add the sources of the modules that are needed for tests to work here.
|
||||
LIBTOR_APP_TESTING_A_SOURCES += $(MODULE_DIRAUTH_SOURCES)
|
||||
|
||||
src_or_libtor_app_testing_a_SOURCES = $(LIBTOR_APP_TESTING_A_SOURCES)
|
||||
src_core_libtor_app_testing_a_SOURCES = $(LIBTOR_APP_TESTING_A_SOURCES)
|
||||
else
|
||||
src_or_libtor_app_testing_a_SOURCES =
|
||||
src_core_libtor_app_testing_a_SOURCES =
|
||||
endif
|
||||
|
||||
src_or_tor_SOURCES = src/or/tor_main.c
|
||||
|
||||
src/or/git_revision.$(OBJEXT) \
|
||||
src/or/src_or_libtor_app_testing_a-git_revision.$(OBJEXT): micro-revision.i
|
||||
src/or/src_core_libtor_app_testing_a-git_revision.$(OBJEXT): micro-revision.i
|
||||
|
||||
AM_CPPFLAGS += -DSHARE_DATADIR="\"$(datadir)\"" \
|
||||
-DLOCALSTATEDIR="\"$(localstatedir)\"" \
|
||||
-DBINDIR="\"$(bindir)\""
|
||||
|
||||
src_or_libtor_app_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_or_libtor_app_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
|
||||
# -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
|
||||
# This seems to matter nowhere but on windows, but I assure you that it
|
||||
# matters a lot there, and is quite hard to debug if you forget to do it.
|
||||
|
||||
|
||||
src_or_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
||||
src_or_tor_LDADD = $(TOR_INTERNAL_LIBS) \
|
||||
$(rust_ldadd) \
|
||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
|
||||
@CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@ \
|
||||
@TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
src_or_tor_cov_SOURCES = src/or/tor_main.c
|
||||
src_or_tor_cov_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
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_LDADD = $(TOR_INTERNAL_TESTING_LIBS) \
|
||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ \
|
||||
@CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@ \
|
||||
@TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
|
||||
endif
|
||||
src_core_libtor_app_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_core_libtor_app_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
|
||||
ORHEADERS = \
|
||||
src/or/addressmap.h \
|
||||
@ -267,7 +228,6 @@ ORHEADERS = \
|
||||
src/or/nodelist.h \
|
||||
src/or/node_st.h \
|
||||
src/or/ns_detached_signatures_st.h \
|
||||
src/or/ntmain.h \
|
||||
src/or/onion.h \
|
||||
src/or/onion_fast.h \
|
||||
src/or/onion_ntor.h \
|
@ -33,7 +33,10 @@ include src/lib/tls/include.am
|
||||
include src/lib/trace/include.am
|
||||
include src/lib/wallclock/include.am
|
||||
include src/trunnel/include.am
|
||||
include src/or/include.am
|
||||
|
||||
include src/core/include.am
|
||||
include src/app/include.am
|
||||
|
||||
include src/rust/include.am
|
||||
include src/test/include.am
|
||||
include src/tools/include.am
|
||||
|
@ -88,7 +88,7 @@
|
||||
#include "or/microdesc.h"
|
||||
#include "or/networkstatus.h"
|
||||
#include "or/nodelist.h"
|
||||
#include "or/ntmain.h"
|
||||
#include "app/ntmain.h"
|
||||
#include "or/onion.h"
|
||||
#include "or/periodic.h"
|
||||
#include "or/policies.h"
|
||||
|
@ -3,8 +3,8 @@
|
||||
|
||||
exitcode=0
|
||||
|
||||
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/or/tor" -z || exitcode=1
|
||||
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/or/tor" -d || exitcode=1
|
||||
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/or/tor" -e || exitcode=1
|
||||
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/app/tor" -z || exitcode=1
|
||||
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/app/tor" -d || exitcode=1
|
||||
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/app/tor" -e || exitcode=1
|
||||
|
||||
exit ${exitcode}
|
||||
|
Loading…
Reference in New Issue
Block a user