Port UnknownArchiveKind
This commit is contained in:
parent
c01546fcd6
commit
33ef16f291
3 changed files with 14 additions and 4 deletions
|
@ -14,7 +14,7 @@ use object::read::macho::FatArch;
|
||||||
use crate::common;
|
use crate::common;
|
||||||
use crate::errors::{
|
use crate::errors::{
|
||||||
ArchiveBuildFailure, DlltoolFailImportLibrary, ErrorCallingDllTool, ErrorCreatingImportLibrary,
|
ArchiveBuildFailure, DlltoolFailImportLibrary, ErrorCallingDllTool, ErrorCreatingImportLibrary,
|
||||||
ErrorWritingDEFFile,
|
ErrorWritingDEFFile, UnknownArchiveKind,
|
||||||
};
|
};
|
||||||
use crate::llvm::archive_ro::{ArchiveRO, Child};
|
use crate::llvm::archive_ro::{ArchiveRO, Child};
|
||||||
use crate::llvm::{self, ArchiveKind, LLVMMachineType, LLVMRustCOFFShortExport};
|
use crate::llvm::{self, ArchiveKind, LLVMMachineType, LLVMRustCOFFShortExport};
|
||||||
|
@ -312,9 +312,10 @@ impl ArchiveBuilderBuilder for LlvmArchiveBuilderBuilder {
|
||||||
impl<'a> LlvmArchiveBuilder<'a> {
|
impl<'a> LlvmArchiveBuilder<'a> {
|
||||||
fn build_with_llvm(&mut self, output: &Path) -> io::Result<bool> {
|
fn build_with_llvm(&mut self, output: &Path) -> io::Result<bool> {
|
||||||
let kind = &*self.sess.target.archive_format;
|
let kind = &*self.sess.target.archive_format;
|
||||||
let kind = kind.parse::<ArchiveKind>().map_err(|_| kind).unwrap_or_else(|kind| {
|
let kind = kind
|
||||||
self.sess.fatal(&format!("Don't know how to build archive of type: {}", kind))
|
.parse::<ArchiveKind>()
|
||||||
});
|
.map_err(|_| kind)
|
||||||
|
.unwrap_or_else(|kind| self.sess.emit_fatal(UnknownArchiveKind { kind: kind }));
|
||||||
|
|
||||||
let mut additions = mem::take(&mut self.additions);
|
let mut additions = mem::take(&mut self.additions);
|
||||||
let mut strings = Vec::new();
|
let mut strings = Vec::new();
|
||||||
|
|
|
@ -111,3 +111,9 @@ pub(crate) struct DlltoolFailImportLibrary<'a> {
|
||||||
pub stdout: Cow<'a, str>,
|
pub stdout: Cow<'a, str>,
|
||||||
pub stderr: Cow<'a, str>,
|
pub stderr: Cow<'a, str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(SessionDiagnostic)]
|
||||||
|
#[diag(codegen_llvm::unknown_archive_kind)]
|
||||||
|
pub(crate) struct UnknownArchiveKind<'a> {
|
||||||
|
pub kind: &'a str,
|
||||||
|
}
|
||||||
|
|
|
@ -48,3 +48,6 @@ codegen_llvm_error_calling_dlltool =
|
||||||
|
|
||||||
codegen_llvm_dlltool_fail_import_library =
|
codegen_llvm_dlltool_fail_import_library =
|
||||||
Dlltool could not create import library: {$stdout}\n{$stderr}
|
Dlltool could not create import library: {$stdout}\n{$stderr}
|
||||||
|
|
||||||
|
codegen_llvm_unknown_archive_kind =
|
||||||
|
Don't know how to build archive of type: {$kind}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue