[tor-bugs] #31552 [Core Tor]: --disable-module-dirauth broken (missing symbols)

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Aug 29 11:44:29 UTC 2019


#31552: --disable-module-dirauth broken (missing symbols)
-------------------------------------------------+-------------------------
 Reporter:  LarryBitcoin                         |          Owner:  (none)
     Type:  defect                               |         Status:  new
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.4.1.x-final
Component:  Core Tor                             |        Version:  Tor:
                                                 |  0.4.1.5
 Severity:  Normal                               |     Resolution:
 Keywords:  build, configure, features,          |  Actual Points:
  modules, regression                            |
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by LarryBitcoin):

 I have two projects that failed with the latest version: one that uses tor
 as a library in process rather than as an independent executable/process,
 and one that uses tor as its own 'vanilla' independent binary/process.
 Both worked fine with 0.4.0.5 and lto on and ----disable-module-dirauth
 set and don't with 0.4.1.5


 I tried the library without lto and it still failed


 {{{
 tor/src/core/libtor-app.a(main.o):main.c:function run_tor_main_loop:
 error: undefined reference to 'keypin_load_journal'
 tor/src/core/libtor-app.a(main.o):main.c:function run_tor_main_loop:
 error: undefined reference to 'keypin_open_journal'
 tor/src/core/libtor-app.a(main.o):main.c:function do_hup: error: undefined
 reference to 'dirserv_load_fingerprint_file'
 tor/src/core/libtor-app.a(connection_or.o):connection_or.c:function
 connection_or_client_learned_peer_id: error: undefined reference to
 'dirserv_orconn_tls_done'
 tor/src/core/libtor-app.a(networkstatus.o):networkstatus.c:function
 routers_update_status_from_consensus_networkstatus: error: undefined
 reference to 'dirserv_should_launch_reachability_test'
 src/core/libtor-app.a(nodelist.o):nodelist.c:function
 nodelist_set_routerinfo: error: undefined reference to
 'dirserv_router_get_status'
 tor/src/core/libtor-app.a(nodelist.o):nodelist.c:function
 nodelist_set_routerinfo: error: undefined reference to
 'dirserv_set_node_flags_from_authoritative_status'
 tor/src/core/libtor-app.a(routerlist.o):routerlist.c:function
 router_add_to_routerlist: error: undefined reference to
 'authdir_wants_to_reject_router'
 tor/src/core/libtor-app.a(routerlist.o):routerlist.c:function
 update_consensus_router_descriptor_downloads: error: undefined reference
 to 'dirserv_would_reject_router'
 tor/src/core/libtor-app.a(router.o):router.c:function init_keys: error:
 undefined reference to 'dirserv_add_own_fingerprint'
 tor/src/core/libtor-app.a(router.o):router.c:function init_keys: error:
 undefined reference to 'dirserv_add_descriptor'
 tor/src/core/libtor-app.a(router.o):router.c:function init_keys: error:
 undefined reference to 'dirserv_load_fingerprint_file'
 tor/src/core/libtor-app.a(dircache.o):dircache.c:function
 directory_handle_command_post: error: undefined reference to
 'dirserv_add_multiple_descriptors'
 clang: error: linker command failed with exit code 1 (use -v to see
 invocation)
 ninja: build stopped: subcommand failed.
 }}}

 I used the following config (static openssl, static libevent, static
 zlib).


 {{{

 CONFIGURE_ARGS="--prefix=${BUILD_ROOT}/tor/build --disable-system-torrc
 --disable-asciidoc --enable-pic --enable-static-openssl \
                 --enable-static-libevent --enable-static-zlib --with-
 openssl-dir=${BUILD_ROOT}/openssl/build \
                 --with-libevent-dir=${BUILD_ROOT}/libevent/build --with-
 zlib-dir=${BUILD_ROOT}/zlib/build \
                 --disable-system-torrc --disable-systemd --disable-zstd
 --disable-lzma --disable-largefile ac_cv_c_bigendian=no --disable-
 unittests --disable-tool-name-check --disable-rust --disable-module-
 dirauth"


 }}}

 without --disable-module-dirauth it works


 The other use of tor is in its' binary form and that definitively fails
 with lto on, see https://travis-
 ci.org/greenaddress/bitcoin_ndk/jobs/578034561

 I'm still doing some testing to confirm if it works without lto in binary
 form but as a library even without lto it breaks.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/31552#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list