Skip to content

Commit 472b591

Browse files
committed
Use rustc_codegen_ssa::back::link instead of copy pasted version
1 parent 964edb9 commit 472b591

File tree

3 files changed

+12
-813
lines changed

3 files changed

+12
-813
lines changed

src/lib.rs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ use rustc::util::common::ErrorReported;
2828
use rustc_codegen_ssa::back::linker::LinkerInfo;
2929
use rustc_codegen_ssa::CrateInfo;
3030
use rustc_codegen_utils::codegen_backend::CodegenBackend;
31-
use rustc_codegen_utils::link::out_filename;
3231
use rustc_mir::monomorphize::partitioning::CodegenUnitExt;
3332

3433
use cranelift::codegen::settings;
@@ -46,8 +45,6 @@ mod common;
4645
mod constant;
4746
mod debuginfo;
4847
mod intrinsics;
49-
mod link;
50-
mod link_copied;
5148
mod linkage;
5249
mod main_shim;
5350
mod metadata;
@@ -366,20 +363,21 @@ impl CodegenBackend for CraneliftCodegenBackend {
366363
_dep_graph: &DepGraph,
367364
outputs: &OutputFilenames,
368365
) -> Result<(), ErrorReported> {
369-
let res = *res
366+
use rustc_codegen_ssa::back::link::link_binary;
367+
368+
let codegen_results = *res
370369
.downcast::<CodegenResults>()
371370
.expect("Expected CraneliftCodegenBackend's CodegenResult, found Box<Any>");
372371

373-
for &crate_type in sess.crate_types.borrow().iter() {
374-
let output_name = out_filename(sess, crate_type, &outputs, &res.crate_name.as_str());
375-
match crate_type {
376-
CrateType::Rlib => link::link_rlib(sess, &res, output_name),
377-
CrateType::Dylib | CrateType::Executable => {
378-
link::link_natively(sess, crate_type, &res, &output_name);
379-
}
380-
_ => sess.fatal(&format!("Unsupported crate type: {:?}", crate_type)),
381-
}
382-
}
372+
let target_cpu = ::target_lexicon::HOST.to_string();
373+
link_binary::<crate::archive::ArArchiveBuilder<'_>>(
374+
sess,
375+
&codegen_results,
376+
outputs,
377+
&codegen_results.crate_name.as_str(),
378+
&target_cpu,
379+
);
380+
383381
Ok(())
384382
}
385383
}

0 commit comments

Comments
 (0)