Rollup merge of #123467 - dpaoliello:archcoff, r=wesleywiser
MSVC targets should use COFF as their archive format While adding support for Arm64EC I ran into an issue where the standard library's rlib was missing the "EC Symbol Table" which is required for the MSVC linker to find import library symbols (generated by Rust's `raw-dylib` feature) when building for EC. The root cause of the issue is that LLVM only generated symbol tables (including the EC Symbol Table) if the `ArchiveKind` is `COFF`, but the MSVC targets didn't set their archive format, so it was defaulting to GNU.
This commit is contained in:
commit
84569f9086
2 changed files with 6 additions and 1 deletions
|
@ -231,7 +231,11 @@ impl<'a> ArArchiveBuilder<'a> {
|
|||
"gnu" => ArchiveKind::Gnu,
|
||||
"bsd" => ArchiveKind::Bsd,
|
||||
"darwin" => ArchiveKind::Darwin,
|
||||
"coff" => ArchiveKind::Coff,
|
||||
"coff" => {
|
||||
// FIXME: ar_archive_writer doesn't support COFF archives yet.
|
||||
// https://github.com/rust-lang/ar_archive_writer/issues/9
|
||||
ArchiveKind::Gnu
|
||||
}
|
||||
"aix_big" => ArchiveKind::AixBig,
|
||||
kind => {
|
||||
self.sess.dcx().emit_fatal(UnknownArchiveKind { kind });
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue