rust-lang / rust-lang/rust

Failure to build Rust 1.91.1

Open
#149,735 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-discussion T-bootstrap
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Hi guys, just to introduce quickly, I am working from a couple of years on a new package manager for Linux.

Yesterday I tried to build rust 1.91.1 from the source, but I am getting this error:

mpiling unic-langid-macros v0.9.6
error[E0119]: conflicting implementations of trait `IntoSliceIdx<_, [_]>` for type `RangeToInclusive<_>`
   --> compiler/rustc_index/src/idx.rs:145:1
    |
103 | impl<I: Idx, T> IntoSliceIdx<I, [T]> for ops::RangeToInclusive<I> {
    | ----------------------------------------------------------------- first implementation here
...
145 | impl<I: Idx, T> IntoSliceIdx<I, [T]> for core::range::RangeToInclusive<I> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `RangeToInclusive<_>`

   Compiling unic-langid v0.9.6
error[E0560]: struct `std::range::RangeInclusive<usize>` has no field named `last`
   --> compiler/rustc_index/src/idx.rs:140:66
    |
140 |         core::range::RangeInclusive { start: self.start.index(), last: self.last.index() }
    |                                                                  ^^^^ `std::range::RangeInclusive<_>` does not have this field
    |
    = note: available fields are: `end`

error[E0609]: no field `last` on type `std::range::RangeInclusive<I>`
   --> compiler/rustc_index/src/idx.rs:140:77
    |
140 |         core::range::RangeInclusive { start: self.start.index(), last: self.last.index() }
    |                                                                             ^^^^ unknown field
    |
    = note: available fields are: `start`, `end`

error[E0560]: struct `RangeToInclusive<_>` has no field named `last`
   --> compiler/rustc_index/src/idx.rs:149:41
    |
149 |         core::range::RangeToInclusive { last: self.last.index() }
    |                                         ^^^^ `RangeToInclusive<_>` does not have this field
    |
    = note: available fields are: `end`

error[E0609]: no field `last` on type `RangeToInclusive<I>`
   --> compiler/rustc_index/src/idx.rs:149:52
    |
149 |         core::range::RangeToInclusive { last: self.last.index() }
    |                                                    ^^^^ unknown field
    |
    = note: available field is: `end`

   Compiling intl-memoizer v0.5.3
Some errors have detailed explanations: E0119, E0560, E0609.
For more information about an error, try `rustc --explain E0119`.
error: could not compile `rustc_index` (lib) due to 5 previous errors
warning: build failed, waiting for other jobs to finish...
Build completed unsuccessfully in 0:31:07

Full log: https://textup.fr/886374RO

This is the config.toml I used:

change-id = ignore

[llvm]
targets = "X86"
link-shared = true

[build]
build = "x86_64-unknown-linux-gnu"
target = ["x86_64-unknown-linux-gnu"]
docs = false
extended = true
locked-deps = true
tools = ["cargo", "rustdoc"]
vendor = true
local-rebuild=true

[install]
prefix = "/usr"
docdir = "share/doc/rustc-1.91.1"

[rust]
channel = "stable"
lto = "thin"
codegen-units = 1

[target.x86_64-unknown-linux-gnu]
crt-static = false

The commands I used to build rust are:

LIBSSH2_SYS_USE_PKG_CONFIG=1 LIBSQLITE3_SYS_USE_PKG_CONFIG=1 ./x.py build library/std --stage 0
LIBSSH2_SYS_USE_PKG_CONFIG=1 LIBSQLITE3_SYS_USE_PKG_CONFIG=1 ./x.py install rustc std cargo

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the posted config.toml and x.py commands, then inspect compiler/rustc_index/src/idx.rs around the reported lines. Compare the build's Rust sources and toolchain assumptions against the range-type errors. Done means identifying the compatibility problem and confirming a successful build or documenting the required configuration or version.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.