commit 6ebb2c46d5eae7bae8d827fdc68d3ed58b16e95a Author: Alex Crichton alex@alexcrichton.com Date: Mon Oct 1 22:50:08 2018 -0700
Remove the `link_rust.sh.in` script
This is no longer necessary with upstream rust-lang/rust changes as well as some local tweaks. Namely:
* The `-fsanitize=address`-style options are now passed via `-C link-args` through `RUSTFLAGS`. This obviates the need for the shell script. * The `-C default-linker-libraries`, disabling `-nodefaultlibs`, is passed through `RUSTFLAGS`, which is necessary to ensure that `-fsanitize=address` links correctly. * The `-C linker` option is passed to ensure we're using the same C compiler as normal C code, although it has a bit of hackery to only get the `gcc` out of `gcc -std=c99` --- configure.ac | 9 ++++----- link_rust.sh.in | 10 ---------- src/test/include.am | 3 +-- 3 files changed, 5 insertions(+), 17 deletions(-)
diff --git a/configure.ac b/configure.ac index dbeba512c..ef8bb4e35 100644 --- a/configure.ac +++ b/configure.ac @@ -1210,17 +1210,17 @@ dnl variable. RUST_LINKER_OPTIONS="" if test "x$have_clang" = "xyes"; then if test "x$CFLAGS_ASAN" != "x"; then - RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS $CFLAGS_ASAN" + RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS -Clink-arg=$CFLAGS_ASAN" fi if test "x$CFLAGS_UBSAN" != "x"; then - RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS $CFLAGS_UBSAN" + RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS -Clink-arg=$CFLAGS_UBSAN" fi else if test "x$CFLAGS_ASAN" != "x"; then - RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS -lasan" + RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS -Clink-arg=-fsanitize=address" fi if test "x$CFLAGS_UBSAN" != "x"; then - RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS -lubsan" + RUST_LINKER_OPTIONS="$RUST_LINKER_OPTIONS -Clink-arg=-fsanitize=undefined" fi fi AC_SUBST(RUST_LINKER_OPTIONS) @@ -2416,7 +2416,6 @@ AC_CONFIG_FILES([ Doxyfile Makefile config.rust - link_rust.sh contrib/dist/suse/tor.sh contrib/operator-tools/tor.logrotate contrib/dist/tor.sh diff --git a/link_rust.sh.in b/link_rust.sh.in deleted file mode 100644 index 59f4142ba..000000000 --- a/link_rust.sh.in +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# A linker script used when building Rust tests. Autoconf makes link_rust.sh -# from link_rust_sh.in, and uses it to pass extra options to the linker -# when linking Rust stuff. -# -# We'd like to remove the need for this, but build.rs doesn't let us pass -# -static-libasan and -static-libubsan to the linker. - -$CCLD @RUST_LINKER_OPTIONS@ "$@" diff --git a/src/test/include.am b/src/test/include.am index 1055cd0a8..431458108 100644 --- a/src/test/include.am +++ b/src/test/include.am @@ -12,8 +12,7 @@ TESTS_ENVIRONMENT = \ export EXTRA_CARGO_OPTIONS="$(EXTRA_CARGO_OPTIONS)"; \ export CARGO_ONLINE="$(CARGO_ONLINE)"; \ export CCLD="$(CCLD)"; \ - chmod +x "$(abs_top_builddir)/link_rust.sh"; \ - export RUSTFLAGS="-C linker=$(abs_top_builddir)/link_rust.sh"; + export RUSTFLAGS="-C linker=`echo '$(CC)' | cut -d' ' -f 1` $(RUST_LINKER_OPTIONS) -C default-linker-libraries";
TESTSCRIPTS = \ src/test/fuzz_static_testcases.sh \
tor-commits@lists.torproject.org