// Verify that no text relocations are accidentally introduced by linking a // minimal rust staticlib. // The test links a rust static library into a shared library, and checks that // the linker doesn't have to flag the resulting file as containing TEXTRELs. // This bug otherwise breaks Android builds, which forbid TEXTRELs. // See https://github.com/rust-lang/rust/issues/68794 //@ ignore-cross-compile //@ ignore-windows // Reason: There is no `bar.dll` produced by CC to run readobj on use run_make_support::{ cc, dynamic_lib_name, extra_c_flags, extra_cxx_flags, llvm_readobj, rustc, static_lib_name, }; fn main() { rustc().input("foo.rs").run(); cc().input("bar.c") .input(static_lib_name("foo")) .out_exe(&dynamic_lib_name("bar")) .arg("-fPIC") .arg("-shared") .args(extra_c_flags()) .args(extra_cxx_flags()) .run(); llvm_readobj() .input(dynamic_lib_name("bar")) .arg("--dynamic") .run() .assert_stdout_not_contains("TEXTREL"); }