diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index fa6436d247..c860a40e7e 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -8,6 +8,7 @@ on: env: CARGO_TERM_COLOR: always + RUST_BACKTRACE: 1 jobs: build: @@ -25,4 +26,4 @@ jobs: cargo test --test control_flow_tests cargo test --test new_alias_analysis_tests cargo test --test async_tests - cargo test --test external_annotation_tests +# cargo test --test external_annotation_tests diff --git a/build.rs b/build.rs index 39577072ff..46505c7882 100644 --- a/build.rs +++ b/build.rs @@ -5,12 +5,16 @@ use std::env; const COMPILER_DEPENDENT_BINARIES : &[&str] = &["dfpp", "cargo-dfpp", "dfpp-explorer"]; -fn add_link_path_for_compiler_binaries(s: impl std::fmt::Display) { +fn add_link_arg_for_compiler_binaries(s: impl std::fmt::Display) { for bin in COMPILER_DEPENDENT_BINARIES { - println!("cargo:rustc-link-arg-bin={bin}=-Wl,-rpath,{s}"); + println!("cargo:rustc-link-arg-bin={bin}={s}"); } } +fn add_link_search_path_for_compiler_binaries(s: impl std::fmt::Display) { + add_link_arg_for_compiler_binaries(format!("-Wl,-rpath,{s}")) +} + /// Taken from Kani /// () /// this code links the rustc libraries directly with the compiled binaries. @@ -21,7 +25,7 @@ pub fn link_rustc_lib() { let rustup_lib = [&rustup_home, "toolchains", &rustup_tc, "lib"] .into_iter() .collect::(); - add_link_path_for_compiler_binaries(rustup_lib.display()); + add_link_search_path_for_compiler_binaries(rustup_lib.display()); // While we hard-code the above for development purposes, for a release/install we look // in a relative location for a symlink to the local rust toolchain @@ -30,7 +34,10 @@ pub fn link_rustc_lib() { } else { "$ORIGIN" }; - add_link_path_for_compiler_binaries(&format!("{origin}/../toolchain/lib")); + add_link_search_path_for_compiler_binaries(&format!("{origin}/../toolchain/lib")); + if cfg!(target_os = "linux") { + println!("cargo:rustc-link-search=native={}", rustup_lib.display()); + } } fn main() {