Open anxiousmodernman opened 6 years ago
The collections
crate no longer exists and its contents were subsumed by the alloc
crate. So the first place to start would probably be to change collections = {}
to alloc = {}
in your Xargo.toml
I did that and it felt like progress. Still hitting a roadblock, though. My current state:
git checkout Cargo.toml
to throw away my changes there[dependencies]
alloc = {}
#rand = {} # got rid of this, too
[dependencies.std]
default-features = false
#features = ["naive_ralloc"]
features = ["alloc"]
[dependencies.compiler_builtins]
features = ["mem"]
stage = 1
This, combined with master's Cargo.toml yields:
coleman:steed/ (master✗) $ xargo build [15:50:31]
Updating registry `https://github.com/rust-lang/crates.io-index`
warning: Package `std v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-un
known-linux-gnu/lib/rustlib/src/rust/src/libstd)` does not have feature `alloc`. It has
a required dependency with that name, but only optional dependencies can be used as fe
atures. This is currently a warning to ease the transition, but it will become an error
in the future.
Compiling core v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-unknow
n-linux-gnu/lib/rustlib/src/rust/src/libcore)
Compiling std_unicode v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64
-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd_unicode)
Compiling alloc v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-unkno
wn-linux-gnu/lib/rustlib/src/rust/src/liballoc)
Finished release [optimized] target(s) in 26.23 secs
warning: Package `std v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-un
known-linux-gnu/lib/rustlib/src/rust/src/libstd)` does not have feature `alloc`. It has
a required dependency with that name, but only optional dependencies can be used as fe
atures. This is currently a warning to ease the transition, but it will become an error
in the future.
Compiling cfg-if v0.1.2
Compiling unwind v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-unkn
own-linux-gnu/lib/rustlib/src/rust/src/libunwind)
Compiling cc v1.0.4
Compiling libc v0.2.36
Compiling libc v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-unknow
n-linux-gnu/lib/rustlib/src/rust/src/rustc/libc_shim)
Compiling filetime v0.1.14
Compiling panic_abort v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64
-unknown-linux-gnu/lib/rustlib/src/rust/src/libpanic_abort)
Compiling alloc_system v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_6
4-unknown-linux-gnu/lib/rustlib/src/rust/src/liballoc_system)
Compiling build_helper v0.1.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_6
4-unknown-linux-gnu/lib/rustlib/src/rust/src/build_helper)
Compiling std v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-unknown
-linux-gnu/lib/rustlib/src/rust/src/libstd)
Compiling compiler_builtins v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-
x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/rustc/compiler_builtins_shim)
Compiling cmake v0.1.29
Compiling rustc_lsan v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-
unknown-linux-gnu/lib/rustlib/src/rust/src/librustc_lsan)
Compiling rustc_asan v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-
unknown-linux-gnu/lib/rustlib/src/rust/src/librustc_asan)
Compiling rustc_tsan v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-
unknown-linux-gnu/lib/rustlib/src/rust/src/librustc_tsan)
Compiling rustc_msan v0.0.0 (file:///home/coleman/.rustup/toolchains/nightly-x86_64-
unknown-linux-gnu/lib/rustlib/src/rust/src/librustc_msan)
error[E0463]: can't find crate for `alloc_jemalloc`
error: aborting due to previous error
error: Could not compile `std`.
To learn more, run the command again with --verbose.
error: `"cargo" "build" "--release" "--manifest-path" "/tmp/xargo.nakpYG2KW4mP/Cargo.to
ml" "--target" "x86_64-unknown-linux-gnu" "-p" "std"` failed with exit code: Some(101)
note: run with `RUST_BACKTRACE=1` for a backtrace
I'm compiling with xargo build
. I have the x86_64-unknown-linux-steed.json saved to the root of the steed repo. Do I need to take additional steps to compile with this target?
Okay I'm trying a different angle: compiling a separate binary crate against steed
Here is my build script https://github.com/anxiousmodernman/steedtest/blob/master/build.sh
The error:
It just feels like our custom target is not being picked up. In my build I ask Rust to look for our target .json in the current directory, but to no avail.
Yeah, something changed recently in Cargo or rustc that necessitates manually setting RUST_TARGET_PATH to the directory containing the target spec (typically the pwd)
edit: just noticed you're already setting that in your test script, so I'm not sure why you're still getting that error.
We'll get there :)
FWIW, I tried cross and it didn't quite work either. However, I'd like to pursue the non-docker strategy to better grok the configuration.
FYI: the switch from pwd to the env var was done in the latest xargo release due to changes in the rust's own build mechanism changes..
I just ran into this issue trying to build in Arch using the lld strategy (e.g. not Docker/cross). I'm trying to compile steed itself, not a dependent crate.
Note: The redox issue linked to seems to be closed. So I'm assuming we still need to use naive_ralloc.
I edited Xargo.toml per #153 discussion, but it didn't quite work.
That config still yielded a similar error
Instead I fiddled with Cargo.toml, to try building with naive_alloc.
Then I tried building with
The output
I'd like to set up a development environment for steed, but I'm not quite sure how to get past this compiler error. Any pointers?