@@ -590,6 +590,38 @@ fn module_codegen(
590590 } ) )
591591}
592592
593+ fn emit_metadata_module ( tcx : TyCtxt < ' _ > , metadata : & EncodedMetadata ) -> CompiledModule {
594+ use rustc_middle:: mir:: mono:: CodegenUnitNameBuilder ;
595+
596+ let _timer = tcx. sess . timer ( "write compressed metadata" ) ;
597+
598+ let cgu_name_builder = & mut CodegenUnitNameBuilder :: new ( tcx) ;
599+ let metadata_cgu_name = cgu_name_builder
600+ . build_cgu_name ( LOCAL_CRATE , [ "crate" ] , Some ( "metadata" ) )
601+ . as_str ( )
602+ . to_string ( ) ;
603+
604+ let tmp_file =
605+ tcx. output_filenames ( ( ) ) . temp_path ( OutputType :: Metadata , Some ( & metadata_cgu_name) ) ;
606+
607+ let symbol_name = rustc_middle:: middle:: exported_symbols:: metadata_symbol_name ( tcx) ;
608+ let obj = create_compressed_metadata_file ( tcx. sess , metadata, & symbol_name) ;
609+
610+ if let Err ( err) = std:: fs:: write ( & tmp_file, obj) {
611+ tcx. dcx ( ) . fatal ( format ! ( "error writing metadata object file: {}" , err) ) ;
612+ }
613+
614+ CompiledModule {
615+ name : metadata_cgu_name,
616+ kind : ModuleKind :: Metadata ,
617+ object : Some ( tmp_file) ,
618+ dwarf_object : None ,
619+ bytecode : None ,
620+ assembly : None ,
621+ llvm_ir : None ,
622+ }
623+ }
624+
593625pub ( crate ) fn run_aot (
594626 tcx : TyCtxt < ' _ > ,
595627 metadata : EncodedMetadata ,
@@ -689,41 +721,8 @@ pub(crate) fn run_aot(
689721 None
690722 } ;
691723
692- let metadata_module = if need_metadata_module {
693- let ( metadata_cgu_name, tmp_file) = tcx. sess . time ( "write compressed metadata" , || {
694- use rustc_middle:: mir:: mono:: CodegenUnitNameBuilder ;
695-
696- let cgu_name_builder = & mut CodegenUnitNameBuilder :: new ( tcx) ;
697- let metadata_cgu_name = cgu_name_builder
698- . build_cgu_name ( LOCAL_CRATE , [ "crate" ] , Some ( "metadata" ) )
699- . as_str ( )
700- . to_string ( ) ;
701-
702- let tmp_file =
703- tcx. output_filenames ( ( ) ) . temp_path ( OutputType :: Metadata , Some ( & metadata_cgu_name) ) ;
704-
705- let symbol_name = rustc_middle:: middle:: exported_symbols:: metadata_symbol_name ( tcx) ;
706- let obj = create_compressed_metadata_file ( tcx. sess , & metadata, & symbol_name) ;
707-
708- if let Err ( err) = std:: fs:: write ( & tmp_file, obj) {
709- tcx. dcx ( ) . fatal ( format ! ( "error writing metadata object file: {}" , err) ) ;
710- }
711-
712- ( metadata_cgu_name, tmp_file)
713- } ) ;
714-
715- Some ( CompiledModule {
716- name : metadata_cgu_name,
717- kind : ModuleKind :: Metadata ,
718- object : Some ( tmp_file) ,
719- dwarf_object : None ,
720- bytecode : None ,
721- assembly : None ,
722- llvm_ir : None ,
723- } )
724- } else {
725- None
726- } ;
724+ let metadata_module =
725+ if need_metadata_module { Some ( emit_metadata_module ( tcx, & metadata) ) } else { None } ;
727726
728727 Box :: new ( OngoingCodegen {
729728 modules,
0 commit comments