-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
[fix]:Build script not rerun when target rustflags change #13560
Conversation
r? @weihanglo rustbot has assigned @weihanglo. Use r? to explicitly pick a reviewer |
@weihanglo @epage I haven't found a better way to limit environment variables to what the build script requires. This seems to require first confirming which environment variables the build script cares about, but I haven't figured out how to confirm this.I will keep looking and if you have any suggestions it would save a lot of time, thank you. The test cases are from anyhow, I hope it will be helpful for understanding. |
If we understand it correctly,
|
If you want to limit the environment variables to those required by the build script, then you need to determine which environment variables are required by the build script. I haven't come up with a better solution other than progressive scanning (and I don't think this is the right kind of solution), and it's harder than I thought it would be if I wanted to do it. Also, more information about whether unnecessary reconstruction occurred might have been better. Honorable @weihanglo @epage |
The current revision will collect in target extra flags to pass to Thanks for the discussion in issue, it has been very beneficial for me. Is there still a revision I need to make? |
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.
Could you clean up commits to two commits? Assumely we want to have first commit for the test, and last for the fix.
@@ -5527,3 +5527,80 @@ fn test_old_syntax_with_old_msrv() { | |||
p.cargo("build -v").run(); | |||
p.cargo("run -v").with_stdout("foo\n").run(); | |||
} | |||
|
|||
#[cargo_test] | |||
fn build_script_rerun_when_target_rustflags_change() { |
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.
The first commit didn't really demonstrate the existing bug.
- It failed on macOS and Windows as
x86_64-unknown-linux-gnu
might not be available. I would suggest usingrustc_host
instead of hardcoded target triple. - It requires nightly toolchain. I understand you want to replicate the case in anyhow, though I think it could be simplified to avoid nightly.
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.
Sorry, I may have wasted some computing resources due to my oversight.
The revised test may make it easier to understand the fix.
6919690
to
5ebe68c
Compare
396faf2
to
11d3591
Compare
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.
Thanks. I went ahead and updated the commit messages a bit. Will merge this when CI is all green.
@bors r+ |
☀️ Test successful - checks-actions |
Update cargo 11 commits in 28e7b2bc0a812f90126be30f48a00a4ada990eaa..74fd5bc730b828dbc956335b229ac34ba47f7ef7 2024-04-05 19:31:01 +0000 to 2024-04-10 18:40:49 +0000 - chore: downgrade to openssl v1.1.1 (again) (rust-lang/cargo#13731) - fix(cargo-fix): dont apply same suggestion twice (rust-lang/cargo#13728) - refactor: make `resolve_with_previous` clearer (rust-lang/cargo#13727) - fix(package): Normalize paths in `Cargo.toml` (rust-lang/cargo#13729) - refactor: Track when MSRV is explicitly set, either way (rust-lang/cargo#13732) - [fix]:Build script not rerun when target rustflags change (rust-lang/cargo#13560) - feat(add): Stabilize MSRV-aware version req selection (rust-lang/cargo#13608) - Fix github fast path redirect. (rust-lang/cargo#13718) - Add release notes for 1.77.1 (rust-lang/cargo#13717) - doc(semver): remove mention of deprecated tool rust-semverver (rust-lang/cargo#13715) - chore: fix some typos (rust-lang/cargo#13714) r? ghost
What does this PR try to resolve?
Fixes #13003