Skip to content

Commit

Permalink
Merge 614a78d into c08102e
Browse files Browse the repository at this point in the history
  • Loading branch information
tlyu committed Jun 27, 2018
2 parents c08102e + 614a78d commit d8298cf
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 9 deletions.
5 changes: 3 additions & 2 deletions Makefile.am
Expand Up @@ -26,8 +26,9 @@ TESTING_TOR_BINARY=$(top_builddir)/src/or/tor$(EXEEXT)
endif

if USE_RUST
rust_ldadd=$(top_builddir)/src/rust/target/release/@TOR_RUST_STATIC_NAME@ \
@TOR_RUST_EXTRA_LIBS@
## this MUST be $(), otherwise am__DEPENDENCIES will not track it
rust_ldadd=$(top_builddir)/$(TOR_RUST_LIB_PATH) \
$(TOR_RUST_EXTRA_LIBS)
else
rust_ldadd=
endif
Expand Down
2 changes: 2 additions & 0 deletions changes/rust_cross
@@ -0,0 +1,2 @@
o Minor feature (Rust, portability):
- Rust cross-compilation is now supported. Closes ticket 25895.
25 changes: 22 additions & 3 deletions configure.ac
Expand Up @@ -453,6 +453,8 @@ fi

AC_C_BIGENDIAN

AC_ARG_VAR([TOR_RUST_TARGET], [Rust target, must be specified when cross-compiling (HOST != BUILD). example: i686-pc-windows-gnu])

if test "x$enable_rust" = "xyes"; then
AC_ARG_VAR([RUSTC], [path to the rustc binary])
AC_CHECK_PROG([RUSTC], [rustc], [rustc],[no])
Expand Down Expand Up @@ -518,12 +520,29 @@ if test "x$enable_rust" = "xyes"; then
dnl For now both MSVC and MinGW rust libraries will output static libs with
dnl the MSVC naming convention.
if test "$bwin32" = "true"; then
TOR_RUST_STATIC_NAME=tor_rust.lib
tor_rust_static_name=tor_rust.lib
else
TOR_RUST_STATIC_NAME=libtor_rust.a
tor_rust_static_name=libtor_rust.a
fi

AC_CANONICAL_BUILD

if test -n "$TOR_RUST_TARGET"; then
if test "$host" = "$build"; then
AC_MSG_ERROR([HOST = BUILD is invalid if TOR_RUST_TARGET is specified, see configure --help for more information.])
fi
RUST_TARGET_PROP="target = '$TOR_RUST_TARGET'"
TOR_RUST_LIB_PATH="src/rust/target/$TOR_RUST_TARGET/release/$tor_rust_static_name"
else
if test "$host" != "$build"; then
AC_MSG_ERROR([TOR_RUST_TARGET must be specified when cross-compiling with Rust enabled.])
fi
RUST_TARGET_PROP=
TOR_RUST_LIB_PATH="src/rust/target/release/$tor_rust_static_name"
fi

AC_SUBST(TOR_RUST_STATIC_NAME)
AC_SUBST(RUST_TARGET_PROP)
AC_SUBST(TOR_RUST_LIB_PATH)
AC_SUBST(CARGO_ONLINE)
AC_SUBST(RUST_WARN)
AC_SUBST(RUST_DL)
Expand Down
5 changes: 3 additions & 2 deletions src/rust/.cargo/config.in
Expand Up @@ -7,5 +7,6 @@
@RUST_DL@ [source.vendored-sources]
@RUST_DL@ directory = '@TOR_RUST_DEPENDENCIES@'

@RUST_WARN@ [build]
@RUST_WARN@ rustflags = [ "-D", "warnings" ]
[build]
@RUST_WARN@ rustflags = [ "-D", "warnings" ]
@RUST_TARGET_PROP@
4 changes: 2 additions & 2 deletions src/rust/tor_rust/include.am
Expand Up @@ -4,7 +4,7 @@ EXTRA_DIST +=\

EXTRA_CARGO_OPTIONS=

src/rust/target/release/@TOR_RUST_STATIC_NAME@: FORCE
@TOR_RUST_LIB_PATH@: FORCE
( cd "$(abs_top_builddir)/src/rust" ; \
CARGO_TARGET_DIR="$(abs_top_builddir)/src/rust/target" \
CARGO_HOME="$(abs_top_builddir)/src/rust" \
Expand All @@ -22,7 +22,7 @@ distclean-rust:
rm -rf "$(abs_top_builddir)/src/rust/registry"

if USE_RUST
build-rust: src/rust/target/release/@TOR_RUST_STATIC_NAME@
build-rust: @TOR_RUST_LIB_PATH@
else
build-rust:
endif
Expand Down

0 comments on commit d8298cf

Please sign in to comment.