33
44//! This file contains the code necessary to interface with the compiler backend
55
6- use crate :: codegen_cprover_gotoc:: archive:: ArchiveBuilder ;
76use crate :: codegen_cprover_gotoc:: GotocCtx ;
87use crate :: kani_middle:: analysis;
98use crate :: kani_middle:: attributes:: is_proof_harness;
@@ -24,6 +23,9 @@ use kani_metadata::CompilerArtifactStub;
2423use kani_metadata:: UnsupportedFeature ;
2524use kani_metadata:: { ArtifactType , HarnessMetadata , KaniMetadata } ;
2625use kani_queries:: { QueryDb , ReachabilityType , UserInput } ;
26+ use rustc_codegen_ssa:: back:: archive:: {
27+ get_native_object_symbols, ArArchiveBuilder , ArchiveBuilder ,
28+ } ;
2729use rustc_codegen_ssa:: back:: metadata:: create_wrapper_file;
2830use rustc_codegen_ssa:: traits:: CodegenBackend ;
2931use rustc_codegen_ssa:: { CodegenResults , CrateInfo } ;
@@ -338,7 +340,7 @@ impl CodegenBackend for GotocCodegenBackend {
338340 debug ! ( ?crate_type, ?out_path, "link" ) ;
339341 if * crate_type == CrateType :: Rlib {
340342 // Emit the `rlib` that contains just one file: `<crate>.rmeta`
341- let mut builder = ArchiveBuilder :: new ( sess) ;
343+ let mut builder = Box :: new ( ArArchiveBuilder :: new ( sess, get_native_object_symbols ) ) ;
342344 let tmp_dir = TempFileBuilder :: new ( ) . prefix ( "kani" ) . tempdir ( ) . unwrap ( ) ;
343345 let path = MaybeTempDir :: new ( tmp_dir, sess. opts . cg . save_temps ) ;
344346 let ( metadata, _metadata_position) = create_wrapper_file (
0 commit comments