diff --git a/packages/cli/src/build/request.rs b/packages/cli/src/build/request.rs index 7a118252c..ed371dd8f 100644 --- a/packages/cli/src/build/request.rs +++ b/packages/cli/src/build/request.rs @@ -1582,6 +1582,13 @@ impl BuildRequest { let bytes = out_ar.into_inner().context("Failed to finalize archive")?; std::fs::write(&out_ar_path, bytes).context("Failed to write archive")?; tracing::debug!("Wrote fat archive to {:?}", out_ar_path); + + // Run the ranlib command to index the archive. This slows down this process a bit, + // but is necessary for some linkers to work properly. + // We ignore its error in case it doesn't recognize the architecture + if let Some(ranlib) = self.select_ranlib() { + _ = Command::new(ranlib).arg(&out_ar_path).output().await; + } } compiler_rlibs.dedup(); @@ -3937,4 +3944,11 @@ r#"