diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2022-02-05 14:42:56 -0500 |
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2022-02-05 15:17:54 -0500 |
| commit | a1c261cd096c9c2ebfffa7049e29c06914784c04 (patch) | |
| tree | 806401cb7dd013afbb540160fdcf520d03aa433a /compiler/rustc_interface | |
| parent | cb18e83e8512be69b26fcb67ae66d81e5b7a4383 (diff) | |
| download | rust-a1c261cd096c9c2ebfffa7049e29c06914784c04.tar.gz rust-a1c261cd096c9c2ebfffa7049e29c06914784c04.zip | |
Store rlink data in opaque binary format on disk
Diffstat (limited to 'compiler/rustc_interface')
| -rw-r--r-- | compiler/rustc_interface/src/queries.rs | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/compiler/rustc_interface/src/queries.rs b/compiler/rustc_interface/src/queries.rs index e635ee1e0ec..2640a9575a3 100644 --- a/compiler/rustc_interface/src/queries.rs +++ b/compiler/rustc_interface/src/queries.rs @@ -13,7 +13,6 @@ use rustc_middle::arena::Arena; use rustc_middle::dep_graph::DepGraph; use rustc_middle::ty::{GlobalCtxt, TyCtxt}; use rustc_query_impl::Queries as TcxQueries; -use rustc_serialize::json; use rustc_session::config::{self, OutputFilenames, OutputType}; use rustc_session::{output::find_crate_name, Session}; use rustc_span::symbol::sym; @@ -367,12 +366,10 @@ impl Linker { } if sess.opts.debugging_opts.no_link { - // FIXME: use a binary format to encode the `.rlink` file - let rlink_data = json::encode(&codegen_results).map_err(|err| { - sess.fatal(&format!("failed to encode rlink: {}", err)); - })?; + let mut encoder = rustc_serialize::opaque::Encoder::new(Vec::new()); + rustc_serialize::Encodable::encode(&codegen_results, &mut encoder).unwrap(); let rlink_file = self.prepare_outputs.with_extension(config::RLINK_EXT); - std::fs::write(&rlink_file, rlink_data).map_err(|err| { + std::fs::write(&rlink_file, encoder.into_inner()).map_err(|err| { sess.fatal(&format!("failed to write file {}: {}", rlink_file.display(), err)); })?; return Ok(()); |
