Closed
Description
I have already successfully built rust 1.44.0 on NetBSD/amd64 8.0.
Next I'm tackling NetBSD/i386 8.0, but that is not going as expected, the build
errors out after hours of apparent successful building with
Compiling miri v0.1.0 (/usr/pkgsrc/lang/rust/work/rustc-1.44.0-src/src/tools/miri)
error[E0478]: lifetime bound not satisfied
--> src/tools/miri/src/diagnostics.rs:182:18
|
182 | impl<'mir, 'tcx> EvalContextExt<'mir, 'tcx> for crate::MiriEvalContext<'mir, 'tcx> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: lifetime parameter instantiated with the lifetime `'tcx` as defined on the impl at 182:12
--> src/tools/miri/src/diagnostics.rs:182:12
|
182 | impl<'mir, 'tcx> EvalContextExt<'mir, 'tcx> for crate::MiriEvalContext<'mir, 'tcx> {}
| ^^^^
note: but lifetime parameter must outlive the lifetime `'mir` as defined on the impl at 182:6
--> src/tools/miri/src/diagnostics.rs:182:6
|
182 | impl<'mir, 'tcx> EvalContextExt<'mir, 'tcx> for crate::MiriEvalContext<'mir, 'tcx> {}
| ^^^^
and several more instances of a similar error, and
error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'tcx` due to conflicting requirements
--> src/tools/miri/src/helpers.rs:267:35
|
267 | impl<'ecx, 'mir, 'tcx, F> ValueVisitor<'mir, 'tcx, Evaluator<'tcx>>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: first, the lifetime cannot outlive the lifetime `'tcx` as defined on the impl at 267:26...
--> src/tools/miri/src/helpers.rs:267:26
|
267 | impl<'ecx, 'mir, 'tcx, F> ValueVisitor<'mir, 'tcx, Evaluator<'tcx>>
| ^^^^
note: ...so that the types are compatible
--> src/tools/miri/src/helpers.rs:267:35
|
267 | impl<'ecx, 'mir, 'tcx, F> ValueVisitor<'mir, 'tcx, Evaluator<'tcx>>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: expected `rustc_mir::interpret::ValueVisitor<'mir, 'tcx, machine::Evaluator<'tcx>>`
found `rustc_mir::interpret::ValueVisitor<'_, '_, machine::Evaluator<'_>>`
note: but, the lifetime must be valid for the lifetime `'mir` as defined on the impl at 267:20...
--> src/tools/miri/src/helpers.rs:267:20
|
267 | impl<'ecx, 'mir, 'tcx, F> ValueVisitor<'mir, 'tcx, Evaluator<'tcx>>
| ^^^^
note: ...so that the types are compatible
--> src/tools/miri/src/helpers.rs:272:22
|
272 | type V = MPlaceTy<'tcx, Tag>;
| ^^^^^^^^^^^^^^^^^^^
= note: expected `rustc_mir::interpret::visitor::Value<'mir, 'tcx, machine::Evaluator<'tcx>>`
found `rustc_mir::interpret::visitor::Value<'_, '_, machine::Evaluator<'tcx>>`
I'm confused. Why would the amd64 build succeed and the i386 build fail when
building the same sources, with what appears to be a rust language issue??
I expected the build on NetBSD/i386 8.0 to succeed.
Instead, this happened: (see above).
The bootstrap compiler is rust 1.43.1.
Meta
rustc --version --verbose
:
rustc 1.43.1
binary: rustc
commit-hash: unknown
commit-date: unknown
host: i686-unknown-netbsd
release: 1.43.1
LLVM version: 9.0