use std::{
io,
path::Path,
process::{Command, ExitStatus},
};
const LINKER: &str = "rust-lld";
pub fn link_normally(args: &[String]) -> io::Result<ExitStatus> {
let mut c = Command::new(LINKER);
c.args(args);
log::trace!("{:?}", c);
c.status()
}
pub fn link_modified(
args: &[String],
current_dir: &Path,
custom_linker_script_dir: &Path,
stack_start: u64,
) -> io::Result<ExitStatus> {
let mut c = Command::new(LINKER);
c
.args(&args[..2])
.arg("-L")
.arg(current_dir)
.args(&args[2..])
.arg(format!("--defsym=_stack_start={}", stack_start))
.current_dir(custom_linker_script_dir);
log::trace!("{:?}", c);
c.status()
}