-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Make the "codegen" profile of config.toml
download and build llvm from source.
#110074
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
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