Skip to content

Commit 7045b10

Browse files
committed
Use MetadataRef in the metadata loader to fix parallel rustc
1 parent 1c40840 commit 7045b10

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed

src/metadata.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ use std::fs::File;
55
use std::path::Path;
66

77
use rustc_codegen_ssa::METADATA_FILENAME;
8-
use rustc_data_structures::owning_ref::{self, OwningRef};
8+
use rustc_data_structures::owning_ref::OwningRef;
99
use rustc_data_structures::rustc_erase_owner;
10+
use rustc_data_structures::sync::MetadataRef;
1011
use rustc_middle::middle::cstore::{EncodedMetadata, MetadataLoader};
1112
use rustc_middle::ty::TyCtxt;
1213
use rustc_session::config;
@@ -17,11 +18,7 @@ use crate::backend::WriteMetadata;
1718
pub(crate) struct CraneliftMetadataLoader;
1819

1920
impl MetadataLoader for CraneliftMetadataLoader {
20-
fn get_rlib_metadata(
21-
&self,
22-
_target: &Target,
23-
path: &Path,
24-
) -> Result<owning_ref::ErasedBoxRef<[u8]>, String> {
21+
fn get_rlib_metadata(&self, _target: &Target, path: &Path) -> Result<MetadataRef, String> {
2522
let mut archive = ar::Archive::new(File::open(path).map_err(|e| format!("{:?}", e))?);
2623
// Iterate over all entries in the archive:
2724
while let Some(entry_result) = archive.next_entry() {
@@ -38,14 +35,9 @@ impl MetadataLoader for CraneliftMetadataLoader {
3835
}
3936

4037
Err("couldn't find metadata entry".to_string())
41-
//self.get_dylib_metadata(target, path)
4238
}
4339

44-
fn get_dylib_metadata(
45-
&self,
46-
_target: &Target,
47-
path: &Path,
48-
) -> Result<owning_ref::ErasedBoxRef<[u8]>, String> {
40+
fn get_dylib_metadata(&self, _target: &Target, path: &Path) -> Result<MetadataRef, String> {
4941
use object::{Object, ObjectSection};
5042
let file = std::fs::read(path).map_err(|e| format!("read:{:?}", e))?;
5143
let file = object::File::parse(&file).map_err(|e| format!("parse: {:?}", e))?;

0 commit comments

Comments
 (0)