rust-lang / rust-lang/rust

something is weird about llvm submodule handling

Open
#124,162 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug S-needs-repro T-bootstrap
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

I just observed the following:
I did a git pull and it downloaded a bunch of llvm submodule data.
Afterwards, I did an x.py install, I'm not sure what happened with the llvm submodule but llvm did NOT get rebuilt, so probably nothing touched it?
Then, I did another x.py install afterwards, without touching anything on the repo and THAT did start rebuilding llvm again.

I'm having a gut feeling that we should have had rebuilt llvm already on the first x.py install but I don't know what the underlying issue is.

cfg:

[llvm]
download-ci-llvm = false
assertions = true
ninja = true
targets = "X86"
link-jobs = 16
cflags = "-march=native" # -D_GLIBCXX_DEBUG
cxxflags = "-march=native" # -D_GLIBCXX_DEBUG
ldflags = "-march=native" # -D_GLIBCXX_DEBUG
polly = false
[build]
dist-stage = 2
install-stage = 2
extended = true
tools = ["cargo", "clippy", "rustfmt", "analysis", "src", "miri"] # + "rust-demangler" if `profiler`
low-priority = true
[install]
prefix = "/home/gh-matthiaskrgr/.rustup/toolchains/local-debug-assertions"
sysconfdir = "etc"
[rust]
debug = true
debug-assertions = true
debug-assertions-std = true
overflow-checks = true
overflow-checks-std = true
debuginfo-level = 1
codegen-backends = ["llvm", "cranelift"]
backtrace-on-ice = true
verify-llvm-ir = true
lto = "thin"
[target.x86_64-unknown-linux-gnu]
[dist]
compression-formats = ["xz"]
```

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

Reproduce the two successive x.py install runs using the reported LLVM and build configuration, and compare the LLVM submodule and rebuild state after each run. Determine whether the first install should rebuild LLVM and document or correct the submodule handling so repeated installs behave consistently.

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
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.