-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make the "codegen" profile of config.toml
download and build llvm from source.
#110074
Conversation
This commit: fcb2a36 (Rename `config.toml.example` to `config.example.toml`, 2023-03-11) missed an instance in `config.example.toml` itself.
(rustbot has picked a reviewer for you, use r? to override) |
This PR changes src/bootstrap/defaults/config.codegen.toml. If appropriate, please also update |
If we're going to make changes here, I'd prefer to implement support for That said, it looks like I accidentally regressed this in #104512, so I don't mind merging your PR as-is and opening a follow-up issue - let me know if you'd prefer that. |
That's interesting. I have some thoughts:
Isn't this what
Source built llvm
matt@Matts-PC:~/rust/build.old/x86_64-unknown-linux-gnu/llvm/bin$ ls
FileCheck llvm-cxxmap llvm-lto2 llvm-sim
UnicodeNameMappingGenerator llvm-debuginfo-analyzer llvm-mc llvm-size
bugpoint llvm-debuginfod llvm-mca llvm-split
count llvm-debuginfod-find llvm-ml llvm-stress
dsymutil llvm-diff llvm-modextract llvm-strings
llc llvm-dis llvm-mt llvm-strip
lli llvm-dlltool llvm-nm llvm-symbolizer
lli-child-target llvm-dwarfdump llvm-objcopy llvm-tapi-diff
llvm-PerfectShuffle llvm-dwarfutil llvm-objdump llvm-tblgen
llvm-addr2line llvm-dwp llvm-opt-report llvm-tli-checker
llvm-ar llvm-exegesis llvm-otool llvm-undname
llvm-as llvm-extract llvm-pdbutil llvm-windres
llvm-bcanalyzer llvm-gsymutil llvm-profdata llvm-xray
llvm-bitcode-strip llvm-ifs llvm-profgen not
llvm-c-test llvm-install-name-tool llvm-ranlib obj2yaml
llvm-cat llvm-jitlink llvm-rc opt
llvm-cfi-verify llvm-jitlink-executor llvm-readelf sancov
llvm-config llvm-lib llvm-readobj sanstats
llvm-cov llvm-libtool-darwin llvm-reduce split-file
llvm-cvtres llvm-link llvm-remark-size-diff verify-uselistorder
llvm-cxxdump llvm-lipo llvm-remarkutil yaml-bench
llvm-cxxfilt llvm-lto llvm-rtdyld yaml2obj
ci-llvm
matt@Matts-PC:~/rust/build/x86_64-unknown-linux-gnu/ci-llvm/bin$ ls
FileCheck llvm-ar llvm-config llvm-dis llvm-dwp llvm-objdump llvm-tblgen
lld llvm-bcanalyzer llvm-cov llvm-dwarfdump llvm-nm llvm-profdata
Although I do notice that The downloadable llvm for this profile should probably include all the build artefacts that you get with a source build - so that the build dir is left in a state as if you've just run a full source build. It's not clear how you could prompt these to build otherwise if you had
I think for now we should merge this as-is so that new contributors aren't left confused like I was. (It's Google Summer of Code soon!). And what I suggested in (1.) should be investigated first as the simplest possible solution. |
I really would rather not add more profiles. People already get confused about compiler vs library when they make changes to stage 1 std that require compiler changes. The group I'm thinking of for "touches codegen but not LLVM" is anyone who touches
This is configured by Lines 606 to 608 in f98a271
👍 makes sense, I agree we should make that change before changing the
👍 this seems reasonable, I would expect most people touching rustc_codegen_llvm to want to read through llvm-project even if they're not editing it. Doing it automatically also has the advantage that bootstrap uses shallow clones for submodules, I think a lot of people aren't aware of shallow clones. @bors r+ rollup |
Rollup of 6 pull requests Successful merges: - rust-lang#110058 (Remove `box_syntax` usage) - rust-lang#110059 (ignore_git → omit_git_hash) - rust-lang#110060 (Document that `&T` and `&mut T` are `Sync` if `T` is) - rust-lang#110074 (Make the "codegen" profile of `config.toml` download and build llvm from source.) - rust-lang#110086 (Add `max_line_length` to `.editorconfig`, matching rustfmt) - rust-lang#110096 (Tweak tuple indexing suggestion) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
The stated purpose of the codegen profile in config.toml is:
but
download-ci-llvm
must be set to be false for the llvm source to even be downloaded. This patch adds that in.Also included: a small docs fix in
config.example.toml