@@ -31,14 +31,15 @@ use rustc_middle::dep_graph::WorkProduct;
31
31
use rustc_middle:: middle:: dependency_format:: Dependencies ;
32
32
use rustc_middle:: middle:: exported_symbols:: SymbolExportKind ;
33
33
use rustc_middle:: ty:: query:: { ExternProviders , Providers } ;
34
- use rustc_serialize:: opaque:: { MemDecoder , MemEncoder } ;
34
+ use rustc_serialize:: opaque:: { FileEncoder , MemDecoder } ;
35
35
use rustc_serialize:: { Decodable , Decoder , Encodable , Encoder } ;
36
36
use rustc_session:: config:: { CrateType , OutputFilenames , OutputType , RUST_CGU_EXT } ;
37
37
use rustc_session:: cstore:: { self , CrateSource } ;
38
38
use rustc_session:: utils:: NativeLibKind ;
39
39
use rustc_span:: symbol:: Symbol ;
40
40
use rustc_span:: DebuggerVisualizerFile ;
41
41
use std:: collections:: BTreeSet ;
42
+ use std:: io;
42
43
use std:: path:: { Path , PathBuf } ;
43
44
44
45
pub mod back;
@@ -215,8 +216,11 @@ const RLINK_MAGIC: &[u8] = b"rustlink";
215
216
const RUSTC_VERSION : Option < & str > = option_env ! ( "CFG_VERSION" ) ;
216
217
217
218
impl 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) ?;
220
224
encoder. emit_raw_bytes ( RLINK_MAGIC ) ;
221
225
// `emit_raw_bytes` is used to make sure that the version representation does not depend on
222
226
// Encoder's inner representation of `u32`.
0 commit comments