Skip to content

Commit 23eae52

Browse files
committed
Add RanlibFailure
1 parent c3dce60 commit 23eae52

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/archive.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use std::fs::File;
22
use std::path::{Path, PathBuf};
33

4+
use crate::errors::RanlibFailure;
5+
46
use rustc_codegen_ssa::back::archive::{ArchiveBuilder, ArchiveBuilderBuilder};
57
use rustc_session::Session;
68

@@ -181,7 +183,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
181183
std::process::Command::new("ranlib").arg(output).status().expect("Couldn't run ranlib");
182184

183185
if !status.success() {
184-
self.config.sess.fatal(&format!("Ranlib exited with code {:?}", status.code()));
186+
self.config.sess.emit_fatal(RanlibFailure { exit_code: status.code() });
185187
}
186188

187189
any_members

src/errors.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
use rustc_macros::SessionDiagnostic;
2+
3+
#[derive(SessionDiagnostic)]
4+
#[diag(codegen_gcc::ranlib_failure)]
5+
pub(crate) struct RanlibFailure {
6+
pub exit_code: Option<i32>
7+
}

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ extern crate rustc_codegen_ssa;
2525
extern crate rustc_data_structures;
2626
extern crate rustc_errors;
2727
extern crate rustc_hir;
28+
extern crate rustc_macros;
2829
extern crate rustc_metadata;
2930
extern crate rustc_middle;
3031
extern crate rustc_session;
@@ -50,6 +51,7 @@ mod context;
5051
mod coverageinfo;
5152
mod debuginfo;
5253
mod declare;
54+
mod errors;
5355
mod int;
5456
mod intrinsic;
5557
mod mono_item;

0 commit comments

Comments
 (0)