]>
git.proxmox.com Git - rustc.git/blob - compiler/rustc_codegen_cranelift/src/metadata.rs
db24bf65eb5a2e015620822b67b81592feeff024
1 //! Writing of the rustc metadata for dylibs
3 use rustc_middle
::ty
::TyCtxt
;
5 use crate::backend
::WriteMetadata
;
7 // Adapted from https://github.com/rust-lang/rust/blob/da573206f87b5510de4b0ee1a9c044127e409bd3/src/librustc_codegen_llvm/base.rs#L47-L112
8 pub(crate) fn write_metadata
<O
: WriteMetadata
>(tcx
: TyCtxt
<'_
>, object
: &mut O
) {
9 use snap
::write
::FrameEncoder
;
12 let metadata
= tcx
.encode_metadata();
13 let mut compressed
= rustc_metadata
::METADATA_HEADER
.to_vec();
14 FrameEncoder
::new(&mut compressed
).write_all(&metadata
.raw_data
).unwrap();
16 object
.add_rustc_section(
17 rustc_middle
::middle
::exported_symbols
::metadata_symbol_name(tcx
),