From 2ac9734bd21f3eecb20560cde5c4037230029157 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 4 Jan 2018 14:02:24 -0500 Subject: [PATCH] Use -lresolv in LIBS with rust on OSX. This fixes issue #24652, and is a workaround for Rust issue https://github.com/rust-lang/rust/issues/46797 . --- Makefile.am | 3 ++- changes/bug24652 | 6 ++++++ configure.ac | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 changes/bug24652 diff --git a/Makefile.am b/Makefile.am index ad2ceb66a..a126986f3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,7 +26,8 @@ TESTING_TOR_BINARY=$(top_builddir)/src/or/tor$(EXEEXT) endif if USE_RUST -rust_ldadd=$(top_builddir)/src/rust/target/release/@TOR_RUST_UTIL_STATIC_NAME@ +rust_ldadd=$(top_builddir)/src/rust/target/release/@TOR_RUST_UTIL_STATIC_NAME@ \ + @TOR_RUST_EXTRA_LIBS@ else rust_ldadd= endif diff --git a/changes/bug24652 b/changes/bug24652 new file mode 100644 index 000000000..6e35e259e --- /dev/null +++ b/changes/bug24652 @@ -0,0 +1,6 @@ + o Minor bugfixes (build, compatibility, rust, OSX): + + - When building with Rust on OSX, link against libresolv, to + work around the issue at + https://github.com/rust-lang/rust/issues/46797. Fixes bug + 24652; bugfix on 0.3.1.1-alpha. diff --git a/configure.ac b/configure.ac index 1bd782eb8..6bfbc2326 100644 --- a/configure.ac +++ b/configure.ac @@ -436,6 +436,15 @@ if test "x$enable_rust" = "xyes"; then fi fi + dnl This is a workaround for #46797 + dnl (a.k.a https://github.com/rust-lang/rust/issues/46797 ). Once the + dnl upstream bug is fixed, we can remove this workaround. + case "$host_os" in + darwin*) + TOR_RUST_EXTRA_LIBS="-lresolv" + ;; + esac + dnl For now both MSVC and MinGW rust libraries will output static libs with dnl the MSVC naming convention. if test "$bwin32" = "true"; then @@ -460,6 +469,8 @@ if test "x$enable_rust" = "xyes"; then fi fi +AC_SUBST(TOR_RUST_EXTRA_LIBS) + AC_SEARCH_LIBS(socket, [socket network]) AC_SEARCH_LIBS(gethostbyname, [nsl]) AC_SEARCH_LIBS(dlopen, [dl])