Crates with a build.rs that try to execute rustc fail (libLLVM.so not in linker search path).
What target(s) are you cross-compiling for?
x86_64-pc-windows-gnu
Which operating system is the host (e.g computer cross is on) running?
[ ] macOS
[ ] Windows
[X] Linux / BSD
[ ] other OS (specify in description)
What architecture is the host?
[X] x86_64 / AMD64
[ ] arm32
[ ] arm64 (including Mac M1)
What container engine is cross using?
[X] docker
[ ] podman
[ ] other container engine (specify in description)
cross version
cross 0.2.5
Example
Run cargo init and add this build.rs:
fn main() {
assert!(
std::process::Command::new("rustc")
.arg("--version")
.status()
.unwrap()
.success(),
"Failed to run rustc"
);
}
Running cross run --target x86_64-pc-windows-gnu fails with the error Failed to run rust.
Caused by:
process didn't exit successfully: `/target/debug/build/minimal-5e6e7e96bd90ecd5/build-script-build` (exit status: 101)
--- stderr
rustc: error while loading shared libraries: libLLVM.so.18.1-rust-1.81.0-nightly: cannot open shared object file: No such file or directory
thread 'main' panicked at build.rs:2:5:
Failed to run rustc
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Additional information / notes
Issue appears to be that the rust compiler is installed in /rust/lib which is not in the dynamic linker search path.
The autocfg crate tries to execute rustc to detect compiler version/features.
Checklist
Describe your issue
Crates with a
build.rs
that try to executerustc
fail (libLLVM.so not in linker search path).What target(s) are you cross-compiling for?
x86_64-pc-windows-gnu
Which operating system is the host (e.g computer cross is on) running?
What architecture is the host?
What container engine is cross using?
cross version
cross 0.2.5
Example
Run
cargo init
and add thisbuild.rs
:Running
cross run --target x86_64-pc-windows-gnu
fails with the errorFailed to run rust
.Additional information / notes
Issue appears to be that the rust compiler is installed in
/rust/lib
which is not in the dynamic linker search path.The
autocfg
crate tries to execute rustc to detect compiler version/features.Workaround: Setting
LD_LIBRARY_PATH=/rust/lib
:Cargo.toml: