fn main() { println!("cargo:rerun-if-changed=build.rs"); struct TargetConfiguration { target: &'static str, lds: &'static str, } const TARGET_CONFIGURATIONS: &[TargetConfiguration] = &[TargetConfiguration { target: "riscv64", lds: "src/arch/riscv/linker64.ld", }]; let target = std::env::var("TARGET").unwrap(); for cfg in TARGET_CONFIGURATIONS { if target.starts_with(cfg.target) { println!("cargo:rerun-if-changed={}", cfg.lds); println!("cargo:rustc-link-arg=-T{}", cfg.lds); return; } } panic!("Unsupported target: {}", target); }