Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Core
Tor
Commits
614a78dd
Commit
614a78dd
authored
May 16, 2018
by
Alex Xu
Committed by
Taylor Yu
Jun 27, 2018
Browse files
Fix Rust cross compilation.
parent
c08102ea
Changes
5
Hide whitespace changes
Inline
Side-by-side
Makefile.am
View file @
614a78dd
...
...
@@ -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
...
...
changes/rust_cross
0 → 100644
View file @
614a78dd
o Minor feature (Rust, portability):
- Rust cross-compilation is now supported. Closes ticket 25895.
configure.ac
View file @
614a78dd
...
...
@@ -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])
...
...
@@ -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)
...
...
src/rust/.cargo/config.in
View file @
614a78dd
...
...
@@ -7,5 +7,6 @@
@RUST_DL@ [source.vendored-sources]
@RUST_DL@ directory = '@TOR_RUST_DEPENDENCIES@'
@RUST_WARN@ [build]
@RUST_WARN@ rustflags = [ "-D", "warnings" ]
\ No newline at end of file
[build]
@RUST_WARN@ rustflags = [ "-D", "warnings" ]
@RUST_TARGET_PROP@
src/rust/tor_rust/include.am
View file @
614a78dd
...
...
@@ -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" \
...
...
@@ -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
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment