Remove macOS fat archive support from LlvmArchiveBuilder

its only ever used for wasm targets
This commit is contained in:
Alex Gaynor 2022-12-03 13:29:22 -05:00
parent cab4fd678c
commit 047c7cc60c
Failed to extract signature

View file

@ -15,8 +15,8 @@ use crate::errors::{
use crate::llvm::archive_ro::{ArchiveRO, Child}; use crate::llvm::archive_ro::{ArchiveRO, Child};
use crate::llvm::{self, ArchiveKind, LLVMMachineType, LLVMRustCOFFShortExport}; use crate::llvm::{self, ArchiveKind, LLVMMachineType, LLVMRustCOFFShortExport};
use rustc_codegen_ssa::back::archive::{ use rustc_codegen_ssa::back::archive::{
get_native_object_symbols, try_extract_macho_fat_archive, ArArchiveBuilder, get_native_object_symbols, ArArchiveBuilder, ArchiveBuildFailure, ArchiveBuilder,
ArchiveBuildFailure, ArchiveBuilder, ArchiveBuilderBuilder, UnknownArchiveKind, ArchiveBuilderBuilder, UnknownArchiveKind,
}; };
use rustc_session::cstore::DllImport; use rustc_session::cstore::DllImport;
@ -66,13 +66,7 @@ impl<'a> ArchiveBuilder<'a> for LlvmArchiveBuilder<'a> {
archive: &Path, archive: &Path,
skip: Box<dyn FnMut(&str) -> bool + 'static>, skip: Box<dyn FnMut(&str) -> bool + 'static>,
) -> io::Result<()> { ) -> io::Result<()> {
let mut archive = archive.to_path_buf(); let archive_ro = match ArchiveRO::open(archive) {
if self.sess.target.llvm_target.contains("-apple-macosx") {
if let Some(new_archive) = try_extract_macho_fat_archive(&self.sess, &archive)? {
archive = new_archive
}
}
let archive_ro = match ArchiveRO::open(&archive) {
Ok(ar) => ar, Ok(ar) => ar,
Err(e) => return Err(io::Error::new(io::ErrorKind::Other, e)), Err(e) => return Err(io::Error::new(io::ErrorKind::Other, e)),
}; };
@ -80,7 +74,7 @@ impl<'a> ArchiveBuilder<'a> for LlvmArchiveBuilder<'a> {
return Ok(()); return Ok(());
} }
self.additions.push(Addition::Archive { self.additions.push(Addition::Archive {
path: archive, path: archive.to_path_buf(),
archive: archive_ro, archive: archive_ro,
skip: Box::new(skip), skip: Box::new(skip),
}); });