| //@ needs-target-std |
| // |
| // Regression test for https://github.com/rust-lang/rust/issues/128955#issuecomment-2657811196 |
| // which checks that rustc can read an archive containing LLVM bitcode with a |
| // newer version from the one rustc links against. |
| use run_make_support::{llvm_ar, path, rfs, rustc, static_lib_name}; |
| |
| fn main() { |
| rfs::create_dir("archive"); |
| |
| let mut bitcode = b"BC\xC0\xDE".to_vec(); |
| bitcode.extend(std::iter::repeat(b'a').take(50)); |
| rfs::write("archive/invalid_bitcode.o", &bitcode); |
| |
| llvm_ar() |
| .arg("rcuS") // like obj_to_ar() except skips creating a symbol table |
| .output_input( |
| path("archive").join(static_lib_name("thin_archive")), |
| "archive/invalid_bitcode.o", |
| ) |
| .run(); |
| |
| // Build an rlib which includes the members of this thin archive |
| rustc().input("rust_lib.rs").library_search_path("archive").run(); |
| } |