Open
Description
I managed to compile aver-rust from source on my Debian Stretch system, and with prefix=/home/eddy/opt/avr-rust-git, it fails to 'make install' with this cryptic error, if the directory does not exist:
eddy@aptonia:~/usr/src/rust/avr-rust/rust/build $ make install
Updating only changed submodules
Submodules updated in 0.02 seconds
Finished dev [unoptimized] target(s) in 0.10s
thread 'main' panicked at 'could not canonicalize /home/eddy/opt/avr-rust-git', src/bootstrap/install.rs:74:48
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
failed to run: /home/eddy/usr/src/rust/avr-rust/rust/build/build/bootstrap/debug/bootstrap install
Build completed unsuccessfully in 0:00:01
Makefile:65: recipe for target 'install' failed
make: *** [install] Error 1
Same error with backtrace:
eddy@aptonia:~/usr/src/rust/avr-rust/rust/build $ (export RUST_BACKTRACE=1 ;make install)
Updating only changed submodules
Submodules updated in 0.02 seconds
Finished dev [unoptimized] target(s) in 0.10s
thread 'main' panicked at 'could not canonicalize /home/eddy/opt/avr-rust-git', src/bootstrap/install.rs:74:48
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
1: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:71
2: std::panicking::default_hook::{{closure}}
at src/libstd/sys_common/backtrace.rs:59
at src/libstd/panicking.rs:197
3: std::panicking::default_hook
at src/libstd/panicking.rs:211
4: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:474
5: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:381
6: std::panicking::begin_panic_fmt
at src/libstd/panicking.rs:336
7: bootstrap::install::install_sh::{{closure}}::{{closure}}
at src/bootstrap/install.rs:74
8: core::result::Result<T,E>::unwrap_or_else
at /rustc/3a5d62bd5675ddd406a5b93d630ba1ddced91777/src/libcore/result.rs:766
9: bootstrap::install::install_sh::{{closure}}
at src/bootstrap/install.rs:74
10: core::option::Option<T>::map_or
at /rustc/3a5d62bd5675ddd406a5b93d630ba1ddced91777/src/libcore/option.rs:437
11: bootstrap::install::install_sh
at src/bootstrap/install.rs:73
12: bootstrap::install::install_std
at src/bootstrap/install.rs:25
13: <bootstrap::install::Std as bootstrap::builder::Step>::run
at src/bootstrap/install.rs:201
14: bootstrap::builder::Builder::ensure
at src/bootstrap/builder.rs:1297
15: <bootstrap::install::Std as bootstrap::builder::Step>::make_run
at src/bootstrap/install.rs:177
16: bootstrap::builder::StepDescription::maybe_run
at src/bootstrap/builder.rs:183
17: bootstrap::builder::StepDescription::run
at src/bootstrap/builder.rs:207
18: bootstrap::builder::Builder::run_step_descriptions
at src/bootstrap/builder.rs:571
19: bootstrap::builder::Builder::execute_cli
at src/bootstrap/builder.rs:561
20: bootstrap::Build::build
at src/bootstrap/lib.rs:456
21: bootstrap::main
at src/bootstrap/bin/main.rs:17
22: std::rt::lang_start::{{closure}}
at /rustc/3a5d62bd5675ddd406a5b93d630ba1ddced91777/src/libstd/rt.rs:64
23: std::panicking::try::do_call
at src/libstd/rt.rs:49
at src/libstd/panicking.rs:293
24: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:85
25: std::rt::lang_start_internal
at src/libstd/panicking.rs:272
at src/libstd/panic.rs:388
at src/libstd/rt.rs:48
26: std::rt::lang_start
at /rustc/3a5d62bd5675ddd406a5b93d630ba1ddced91777/src/libstd/rt.rs:64
27: main
28: __libc_start_main
29: _start
failed to run: /home/eddy/usr/src/rust/avr-rust/rust/build/build/bootstrap/debug/bootstrap install
Build completed unsuccessfully in 0:00:00
Makefile:65: recipe for target 'install' failed
make: *** [install] Error 1
But if I make the directory by hand, the cryptic error goes away and install starts:
eddy@aptonia:~/usr/src/rust/avr-rust/rust/build $ mkdir ~/opt/avr-rust-git
eddy@aptonia:~/usr/src/rust/avr-rust/rust/build $ make install
Updating only changed submodules
Submodules updated in 0.02 seconds
Finished dev [unoptimized] target(s) in 0.10s
Building stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.12s
Copying stage0 std from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage0 test artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.09s
Copying stage0 test from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage0 compiler artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.12s
Copying stage0 rustc from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage0 codegen artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu, llvm)
Finished release [optimized] target(s) in 0.10s
Assembling stage1 compiler (x86_64-unknown-linux-gnu)
[...]
I'm unsure this is avr-rust specific, or applies to the official rustc, so I'm reporting here.
FYI, issue seems to be very similar to #131 / #135, so the macOS specific fix of extending the macOS doc was not useful for my case since I rightfully skipped the macOS part.
I'm thinking the part responsible by the install should try to create the prefix dir, and, if fails, complain with a decent error message, if failed.
Metadata
Metadata
Assignees
Labels
No labels