Age | Commit message (Collapse) | Author |
|
|
|
|
|
It looks to be the case that Rust's standard allocator, jemalloc, is
incompatible with sanitizers. The incompatibility, for whatever reason,
seems to cause segfaults at runtime when jemalloc is linked with
sanitizers.
Without actually trying to figure out what's going on here this commit
instead takes the hammer of "let's remove jemalloc when testing". The
`tor_allocate` crate now by default switches to the system allocator
(eventually this will want to be the tor allocator). Most crates then
link to `tor_allocate` ot pick this up, but the `smartlist` crate had to
manually switch to the system allocator in testing and the `external`
crate had to be sure to link to `tor_allocate`.
The final gotcha here is that this patch also switches to
unconditionally passing `--target` to Cargo. For weird and arcane
reasons passing `--target` with the host target of the compiler (which
Cargo otherwise uses as the default) is different than not passing
`--target` at all. This ensure that our custom `RUSTFLAGS` with
sanitizer options doesn't make its way into build scripts, just the
final testing artifacts.
|
|
This is really annoying, since we can't use cfg(test) for doctests.
|
|
This reverts commit e1291aa84a04b8006130ce08338ee07a662e5ce0.
|
|
Re-applies 0.3.3 changes after 24629.
|
|
cd to ${abs_top_builddir}/src/rust before running cargo in
src/test/test_rust.sh.
Fixes bug 26497; bugfix on 0.3.3.2-alpha.
|
|
Consistently use ../../.. as a fallback for $abs_top_srcdir in
test_rust.sh.
Fixes bug 27093; bugfix on 0.3.4.3-alpha.
|
|
cargo will use the user's $CARGO_HOME, or $HOME/.cargo by default.
Fixes bug 26497; bugfix on 0.3.1.5-alpha.
|
|
Preparation for 26497.
|
|
|
|
This adds a couple of configure commands to control whether we're
requiring all dependencies to be available locally (default) or not
(--enable-cargo-online-mode). When building from a tarball, we require
the RUST_DEPENDENCIES variable to point to the local repository of
crates. This also adds src/ext/rust as a git submodule that contains
such a local repository for easy setup.
|
|
Passing --enable-cargo-online-mode during configure allows cargo to make
network requests while building Tor or running tests. If this flag is
not supplied, the dependencies need to be available in the form of a
local mirror.
|
|
|