-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Use shell parsing for response files #116954
Conversation
r? @wesleywiser (rustbot has picked a reviewer for you, use r? to override) |
These commits modify the If this was unintentional then you should revert the changes before this PR is merged. Third-party dependency whitelist may have been modified! You must ensure that any new dependencies have compatible licenses before merging. |
I think crater would be useless. Given that clang and GCC do this, it seems unlikely that any build system would rely on it not being done. At least to me this seems reasonable, but you should create an MCP it. |
Switching to S-waiting-on-author to take action after compiler-team#684 finishes (or advance a new MCP?) @rustbot author |
☔ The latest upstream changes (presumably #119777) made this pull request unmergeable. Please resolve the merge conflicts. |
@P1n3appl3 any updates on this? thanks |
#118680 superseded this PR and was landed |
It turns out that #116610 is inadequate, we actually need rustc to perform shell parsing on the lines in response files. This will require adding a dep to the compiler: https://crates.io/crates/shlex
Both clang and gcc do shlex parsing, so it seems reasonable to make rustc do the same. However this would technically be a breaking change if some build system was relying on being able to pass unquoted arguments with spaces in them in a response file and having rustc interpret them as a single arg. To me that scenario seems pretty unlikely, but I'd understand if people want to be more cautious.
How should we proceed? We could do any of:
-Z response_file_shlex
that enables this new behavior for all response files on the command line-Bstatic
/-Bdynamic
where they toggle it for any response files after the flag