[tor-commits] [tor/maint-0.3.2] Use -lresolv in LIBS with rust on OSX.

nickm at torproject.org nickm at torproject.org
Tue Jan 16 18:36:56 UTC 2018


commit 2ac9734bd21f3eecb20560cde5c4037230029157
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Jan 4 14:02:24 2018 -0500

    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(-)

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])





More information about the tor-commits mailing list