@@ -31,14 +31,15 @@ use rustc_middle::dep_graph::WorkProduct;
3131use rustc_middle:: middle:: dependency_format:: Dependencies ;
3232use rustc_middle:: middle:: exported_symbols:: SymbolExportKind ;
3333use rustc_middle:: ty:: query:: { ExternProviders , Providers } ;
34- use rustc_serialize:: opaque:: { MemDecoder , MemEncoder } ;
34+ use rustc_serialize:: opaque:: { FileEncoder , MemDecoder } ;
3535use rustc_serialize:: { Decodable , Decoder , Encodable , Encoder } ;
3636use rustc_session:: config:: { CrateType , OutputFilenames , OutputType , RUST_CGU_EXT } ;
3737use rustc_session:: cstore:: { self , CrateSource } ;
3838use rustc_session:: utils:: NativeLibKind ;
3939use rustc_span:: symbol:: Symbol ;
4040use rustc_span:: DebuggerVisualizerFile ;
4141use std:: collections:: BTreeSet ;
42+ use std:: io;
4243use std:: path:: { Path , PathBuf } ;
4344
4445pub mod back;
@@ -215,8 +216,11 @@ const RLINK_MAGIC: &[u8] = b"rustlink";
215216const RUSTC_VERSION : Option < & str > = option_env ! ( "CFG_VERSION" ) ;
216217
217218impl CodegenResults {
218- pub fn serialize_rlink ( codegen_results : & CodegenResults ) -> Vec < u8 > {
219- let mut encoder = MemEncoder :: new ( ) ;
219+ pub fn serialize_rlink (
220+ rlink_file : & Path ,
221+ codegen_results : & CodegenResults ,
222+ ) -> Result < usize , io:: Error > {
223+ let mut encoder = FileEncoder :: new ( rlink_file) ?;
220224 encoder. emit_raw_bytes ( RLINK_MAGIC ) ;
221225 // `emit_raw_bytes` is used to make sure that the version representation does not depend on
222226 // Encoder's inner representation of `u32`.
0 commit comments