| // 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."); | |
| }); | |
| } |