-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Remove unsupported options in configure.py #98369
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
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
src/bootstrap/configure.py
Outdated
o("extended", "build.extended", "build an extended rust tool set") | ||
|
||
v("tools", None, "List of extended tools will be installed") | ||
v("codegen-backends", None, "List of codegen backends to build") | ||
v("build", "build.build", "GNUs ./configure syntax LLVM build triple") | ||
v("build", "build.build", "GNUs ./configure syntax LLVM build triple (unsupported)") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should theoretically be supported, but it doesn't work in practice - I had a conversation a long time ago with someone trying to fix it, but can't find it. Not sure how to replicate locally, I don't have easy access to a musl machine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh I forgot I still have access to @oli-obk's machine - I'm not sure this is actually the right error though? if anyone knows how to test this happy to try it out
/home/joshua/rustc/build/x86_64-unknown-linux-musl/stage0/bin/cargo: error while loading shared libraries: /nix/store/9rabxvqbv0vgjmydiv59wkz768b5fmbc-glibc-2.30/lib/libc.so: invalid ELF header
I am tempted to remove support for them -- they could still be set via --set, right? It seems a little odd to have built-in support for options we don't really want to support in configure.py. (It's probably not a good idea to remove them from config.toml{,.example}, but I'm not sure showing them in help text makes sense.) |
ahh right I forgot --set is a thing. To some extent I wonder how useful it is to have separate help for configure? We have to keep it in sync with the config.toml options, which in practice means the help gets outdated quite quickly. I wonder if we should just tell people to read config.toml.example instead. |
I think the common interface for most folks not familiar with Rust (e.g., just building from source for distro/local usage) is through configure; it's never necessary but so long as we have it I think having help for the commonly used options makes sense. The help messages for configure options are pretty basic I think; if we wanted to add a line of "these all refer to config.toml.example options; please see that for details" I'd be fine with that. |
Hmm, I worry this will needlessly break people. I know at least one person (I think in debian?) running full-bootstrap on each release to make sure we don't regress reproducible builds. I agree we should remove |
Hmm. I see a lot of errors because |
This comment has been minimized.
This comment has been minimized.
Hm, actually, I'm not sure we should drop --build. It's sometimes useful for CI and other environments where you could build with multiple build triples, and there's no real way for us to know which one to prefer -- for example, MSVC or mingw on Windows, or 32-bit or 64-bit Linux. I don't think there's much value in us forcing that to be set through --set. Edit: I see the comments above about it being unsupported, but I think that isn't true? We use it on the i686-gnu CI builder (--build=i686-unknown-linux-gnu is passed to configure) and presumably that builder is running just fine... |
I think "unsupported" is not quite the right word - we don't support setting it to a setting other than the one x.py would autodetect. I haven't been able to replicate this unfortunately :( but I definitely remember running into weird build issues with this a while ago ... anyway, I'll add the flag back since I can't come up with anything more definite than my memory. |
@bors r+ rollup |
Remove unsupported options in configure.py I've seen people using `optimize = false` and `full-bootstrap = true` in the past, without knowing that they're not recommended. Remove `optimize` and a few other options that are always a bad idea, and document that full-bootstrap is only for testing reproducible builds.
@bors r- failed in a rollup: #99023 (comment) |
I've seen people using `optimize = false` and `full-bootstrap = true` in the past, without knowing that they're not recommended. Remove `optimize` and a few other options that are always a bad idea, and document that full-bootstrap is only for testing reproducible builds.
@bors r=Mark-Simulacrum rollup=maybe |
☀️ Test successful - checks-actions |
Finished benchmarking commit (2682b88): comparison url. Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression Footnotes |
I've seen people using
optimize = false
andfull-bootstrap = true
in the past, without knowingthat they're not recommended. Remove
optimize
and a few other options that are always a bad idea,and document that full-bootstrap is only for testing reproducible builds.