Conversation
064b8e5 to
b5d891b
Compare
b5d891b to
a17a3d2
Compare
This comment has been minimized.
This comment has been minimized.
a17a3d2 to
3cbb918
Compare
This comment has been minimized.
This comment has been minimized.
3cbb918 to
adca83a
Compare
This comment has been minimized.
This comment has been minimized.
adca83a to
4fa01bb
Compare
This comment has been minimized.
This comment has been minimized.
4fa01bb to
238a0fd
Compare
|
These commits modify compiler targets. Some changes occurred in src/tools/compiletest cc @jieyouxu
|
|
r? @TaKO8Ki rustbot has assigned @TaKO8Ki. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
cc @mati865 |
|
I think the consensus on Zulip was that we want to hold back the breaking changes until next release after the bump. To give the time for updating. |
Well, they did but with caveats. Like, it broke when import libs were put inside archive like staticlib/rlib. |
|
My bad. Let's wait for beta to branch then. @rustbot author |
|
It's been almost 4 weeks. |
|
@bors r+ |
|
Asked on Zulip whether this requires a MCP due to stable flag removal. Previously we did that via MCP: #152973 Pulling off the merge queue until answered, if MCP is not required then I apologize for the noise. EDIT: also sorry for the late notice, I' been meaning to review it but couldn't remember to do that when I had time. |
|
This pull request was unapproved. |
This comment has been minimized.
This comment has been minimized.
Older versions of ld.bfd didn't support short import libraries like the builtin implementation of rustc generates. So we worked around this by using binutils dlltool, which produces the old import library format. We have now bumped the minimum supported ld.bfd version to one which does support them, so we can drop the dlltool usage. This makes cross-compilation a bit easier and removes a bunch of code in rustc.
d4baa00 to
687fd1c
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
@rustbot ready Turns out we will have to this rather than the more gradual migration path in #161050 after all due to a standard library being compiled without usage of dlltool being ABI incompatible with user code compiled with usage of dlltool and vice versa: #161050 (comment) @rustbot fcp compiler This will stop us from respecting |
|
@rfcbot fcp compiler |
|
@rfcbot merge compiler This will stop us from respecting |
|
@bjorn3 has proposed to merge this. The next step is review by the rest of the tagged team members:
No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
|
Checking my box, but can you make sure the PR description is updated to reflect that this has diverged from the MCP and is no longer implementing it? I'd also be curious on what clang / gcc do for mingw targets (not directly blocking for the decision though). Also, can someone confirm that this change shouldn't be ABI-breaking with regards to usage of C libraries or producing them (e.g., staticlib/cdylib) on mingw? This sounds related to the gcc/clang concern. |
Done
Import libraries generated by raw-dylib shouldn't be used outside Rust. Using C DLLs will work fine as only the local symbol name changes, not the name the DLL exports it as. Producing cdylib will be unchanged too as the import library is generated by the linker. And for importing C staticlibs or C DLLs with non-raw-dylib import library I don't think we had the symbol name generation special cased on MinGW before in the first place. |
They do nothing as there is no raw-dylib equivalent in C/C++. |
View all comments
Older versions of ld.bfd didn't support short import libraries like the builtin implementation of rustc generates. So we worked around this by using binutils dlltool, which produces the old import library format. We have now bumped the minimum supported ld.bfd version to one which does support them, so we can drop the dlltool usage. This makes cross-compilation a bit easier and removes a bunch of code in rustc.
This implements rust-lang/compiler-team#1029 with the exception of removing
-Cdlltoolsupport immediately rather than doing a two step migration.