commit 81cb0afb2b0163d95a435583041dce1064eec65c Author: Nick Mathewson nickm@torproject.org Date: Thu Jul 5 16:04:32 2018 -0400
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". --- .gitignore | 19 ++++++------ Makefile.am | 8 ++--- doc/HACKING/HelpfulTools.md | 6 ++-- scripts/maint/checkOptionDocs.pl.in | 2 +- src/app/include.am | 38 +++++++++++++++++++++++ src/{or => app}/ntmain.c | 2 +- src/{or => app}/ntmain.h | 0 src/{or => app}/tor_main.c | 0 src/{or => core}/include.am | 60 +++++++------------------------------ src/include.am | 5 +++- src/or/main.c | 2 +- src/test/test_zero_length_keys.sh | 6 ++-- 12 files changed, 74 insertions(+), 74 deletions(-)
diff --git a/.gitignore b/.gitignore index 711974450..80c039a68 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/Makefile.am b/Makefile.am index b2da55cda..e7c46f3cc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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) \ diff --git a/doc/HACKING/HelpfulTools.md b/doc/HACKING/HelpfulTools.md index eb068a91f..13d1c4b0d 100644 --- a/doc/HACKING/HelpfulTools.md +++ b/doc/HACKING/HelpfulTools.md @@ -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 ------------------------------------ diff --git a/scripts/maint/checkOptionDocs.pl.in b/scripts/maint/checkOptionDocs.pl.in index 1f53adf09..6533c762c 100644 --- a/scripts/maint/checkOptionDocs.pl.in +++ b/scripts/maint/checkOptionDocs.pl.in @@ -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_]+)!) { diff --git a/src/app/include.am b/src/app/include.am new file mode 100644 index 000000000..bbbffb3e5 --- /dev/null +++ b/src/app/include.am @@ -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 diff --git a/src/or/ntmain.c b/src/app/ntmain.c similarity index 99% rename from src/or/ntmain.c rename to src/app/ntmain.c index f6b57753d..63d82f686 100644 --- a/src/or/ntmain.c +++ b/src/app/ntmain.c @@ -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" diff --git a/src/or/ntmain.h b/src/app/ntmain.h similarity index 100% rename from src/or/ntmain.h rename to src/app/ntmain.h diff --git a/src/or/tor_main.c b/src/app/tor_main.c similarity index 100% rename from src/or/tor_main.c rename to src/app/tor_main.c diff --git a/src/or/include.am b/src/core/include.am similarity index 82% rename from src/or/include.am rename to src/core/include.am index ad7ee69bf..d6162196f 100644 --- a/src/or/include.am +++ b/src/core/include.am @@ -1,22 +1,11 @@ -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 -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= + src/core/libtor-app-testing.a endif
-EXTRA_DIST+= src/or/ntmain.c src/or/Makefile.nmake - LIBTOR_APP_A_SOURCES = \ src/or/addressmap.c \ src/or/address_set.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 \ diff --git a/src/include.am b/src/include.am index 950f9cc0f..b5cca7e30 100644 --- a/src/include.am +++ b/src/include.am @@ -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 diff --git a/src/or/main.c b/src/or/main.c index 7e3eb2b59..2a57aa587 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -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" diff --git a/src/test/test_zero_length_keys.sh b/src/test/test_zero_length_keys.sh index f85edb68d..84ca513b0 100755 --- a/src/test/test_zero_length_keys.sh +++ b/src/test/test_zero_length_keys.sh @@ -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}
tor-commits@lists.torproject.org