From 4256ee0d379daf35098c396757ce92b97b025c6e Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 29 Aug 2019 09:50:38 -0400 Subject: [PATCH] Stub out some more functions in dirvote/*.h, fix compilation. This fixes LTO compilation for Android and -O0 compilation in general, when --disable-module-dirauth is provided. Fixes bug 31552; bugfix on 0.4.1.1-alpha. --- changes/bug31552 | 5 +++++ src/feature/dirauth/process_descs.h | 26 +++++++++++++++++++++++--- src/feature/dirauth/reachability.h | 16 ++++++++++++++-- 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 changes/bug31552 diff --git a/changes/bug31552 b/changes/bug31552 new file mode 100644 index 0000000000..fb33e14429 --- /dev/null +++ b/changes/bug31552 @@ -0,0 +1,5 @@ + o Minor bugfixes (compilation): + - Add more stub functions to fix compilation on Android with LTO, when + --disable-module-dirauth is used. Previously, these compilation + settings would make the compiler look for functions that didn't exist. + Fixes bug 31552; bugfix on 0.4.1.1-alpha. diff --git a/src/feature/dirauth/process_descs.h b/src/feature/dirauth/process_descs.h index 001c866eba..0da47c96c3 100644 --- a/src/feature/dirauth/process_descs.h +++ b/src/feature/dirauth/process_descs.h @@ -25,15 +25,35 @@ enum was_router_added_t dirserv_add_descriptor(routerinfo_t *ri, const char **msg, const char *source); -int authdir_wants_to_reject_router(routerinfo_t *ri, const char **msg, - int complain, - int *valid_out); uint32_t dirserv_router_get_status(const routerinfo_t *router, const char **msg, int severity); void dirserv_set_node_flags_from_authoritative_status(node_t *node, uint32_t authstatus); +#ifdef HAVE_MODULE_DIRAUTH int dirserv_would_reject_router(const routerstatus_t *rs); +int authdir_wants_to_reject_router(routerinfo_t *ri, const char **msg, + int complain, + int *valid_out); +#else +static inline int +dirserv_would_reject_router(const routerstatus_t *rs) +{ + (void)rs; + return 0; +} +static inline int +authdir_wants_to_reject_router(routerinfo_t *ri, const char **msg, + int complain, + int *valid_out) +{ + (void)ri; + (void)msg; + (void)complain; + (void)valid_out; + return 0; +} +#endif #endif /* !defined(TOR_RECV_UPLOADS_H) */ diff --git a/src/feature/dirauth/reachability.h b/src/feature/dirauth/reachability.h index 873a3f9a23..0018c7f638 100644 --- a/src/feature/dirauth/reachability.h +++ b/src/feature/dirauth/reachability.h @@ -28,9 +28,21 @@ void dirserv_orconn_tls_done(const tor_addr_t *addr, uint16_t or_port, const char *digest_rcvd, const struct ed25519_public_key_t *ed_id_rcvd); -int dirserv_should_launch_reachability_test(const routerinfo_t *ri, - const routerinfo_t *ri_old); void dirserv_single_reachability_test(time_t now, routerinfo_t *router); void dirserv_test_reachability(time_t now); +#ifdef HAVE_MODULE_DIRAUTH +int dirserv_should_launch_reachability_test(const routerinfo_t *ri, + const routerinfo_t *ri_old); +#else +static inline int +dirserv_should_launch_reachability_test(const routerinfo_t *ri, + const routerinfo_t *ri_old) +{ + (void)ri; + (void)ri_old; + return 0; +} +#endif + #endif /* !defined(TOR_REACHABILITY_H) */