Skip to content

Commit

Permalink
Ensure the rustc-codegen-cranelift-preview component is never empty
Browse files Browse the repository at this point in the history
Either generate it with the actual codegen backend dylib or omit it
entirely when the cranelift backend is disabled for this build.
  • Loading branch information
bjorn3 committed Oct 28, 2023
1 parent 794bf8a commit aefd7ac
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/bootstrap/src/core/build_steps/dist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1305,6 +1305,10 @@ impl Step for CodegenBackend {
return None;
}

if !builder.config.rust_codegen_backends.contains(&self.backend) {
return None;
}

if self.backend == "cranelift" {
if !target_supports_cranelift_backend(self.compiler.host) {
builder.info("target not supported by rustc_codegen_cranelift. skipping");
Expand Down Expand Up @@ -1343,12 +1347,15 @@ impl Step for CodegenBackend {
let backends_dst = PathBuf::from("lib").join(&backends_rel);

let backend_name = format!("rustc_codegen_{}", backend);
let mut found_backend = false;
for backend in fs::read_dir(&backends_src).unwrap() {
let file_name = backend.unwrap().file_name();
if file_name.to_str().unwrap().contains(&backend_name) {
tarball.add_file(backends_src.join(file_name), &backends_dst, 0o644);
found_backend = true;
}
}
assert!(found_backend);

Some(tarball.generate())
}
Expand Down

0 comments on commit aefd7ac

Please sign in to comment.