| // The unstable flag `-Z export-executable-symbols` exports symbols from executables, as if |
| // they were dynamic libraries. This test is a simple smoke test to check that this feature |
| // works by using it in compilation, then checking that the output binary contains the exported |
| // symbol. |
| // See https://github.com/rust-lang/rust/pull/85673 |
| |
| //@ only-unix |
| // Reason: the export-executable-symbols flag only works on Unix |
| // due to hardcoded platform-specific implementation |
| // (See #85673) |
| //@ ignore-wasm32 |
| //@ ignore-wasm64 |
| //@ ignore-none |
| // Reason: no-std is not supported |
| |
| use run_make_support::{bin_name, llvm_readobj, rustc}; |
| |
| fn main() { |
| rustc().arg("-Zexport-executable-symbols").input("main.rs").crate_type("bin").run(); |
| llvm_readobj() |
| .symbols() |
| .input(bin_name("main")) |
| .run() |
| .assert_stdout_contains("exported_symbol"); |
| } |