| // Both GCC and Clang write by default a `.comment` section with compiler information. |
| // Rustc received a similar .comment section, so this tests checks that this section |
| // properly appears. |
| // See https://github.com/rust-lang/rust/commit/74b8d324eb77a8f337b35dc68ac91b0c2c06debc |
| |
| //@ only-linux |
| // FIXME(jieyouxu): check cross-compile setup |
| //@ ignore-cross-compile |
| |
| use run_make_support::{cwd, env_var, llvm_readobj, rfs, rustc}; |
| |
| fn main() { |
| let target = env_var("TARGET"); |
| |
| rustc() |
| .arg("-") |
| .stdin_buf("fn main() {}") |
| .emit("link,obj") |
| .arg("-Csave-temps") |
| .target(target) |
| .run(); |
| |
| // Check linked output has a `.comment` section with the expected content. |
| llvm_readobj() |
| .section(".comment") |
| .input("rust_out") |
| .run() |
| .assert_stdout_contains("rustc version 1."); |
| |
| // Check all object files (including temporary outputs) have a `.comment` |
| // section with the expected content. |
| rfs::read_dir_entries(cwd(), |f| { |
| if !f.extension().is_some_and(|ext| ext == "o") { |
| return; |
| } |
| |
| llvm_readobj() |
| .section(".comment") |
| .input(&f) |
| .run() |
| .assert_stdout_contains("rustc version 1."); |
| }); |
| } |