From 7f4ff7cf15f93759e8eae18cf8423035dba36c5e Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Thu, 18 Aug 2022 21:28:07 -0700 Subject: Rebuild on Linker change --- Makefile | 7 +++++++ build.rs | 20 ++++++++++++++++++++ src/bsp/raspberrypi/linker.ld | 1 + 3 files changed, 28 insertions(+) create mode 100644 build.rs diff --git a/Makefile b/Makefile index d2b6c52..8c202d8 100644 --- a/Makefile +++ b/Makefile @@ -30,3 +30,10 @@ clean: run: build qemu-system-arm -cpu cortex-a7 -m 1G -kernel target/armv7a-none-eabi/release/kernel -machine raspi2b -serial mon:stdio -nographic + +init: + rustup target install $(TARGET) + rustup target add $(TARGET) + rustup override set nightly + rustup component add llvm-tools-preview + cargo install cargo-binutils diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..721d6d6 --- /dev/null +++ b/build.rs @@ -0,0 +1,20 @@ +use std::{env,fs,process}; + +fn main() { + let ld_script_path = match env::var("LD_SCRIPT_PATH") { + Ok(var) => var, + _ => process::exit(0), + }; + + let files = fs::read_dir(ld_script_path).unwrap(); + files + .filter_map(Result::ok) + .filter(|d| { + if let Some(e) = d.path().extension() { + e == "ld" + } else { + false + } + }) + .for_each(|f| println!("cargo:rerun-if-changed={}", f.path().display())); +} diff --git a/src/bsp/raspberrypi/linker.ld b/src/bsp/raspberrypi/linker.ld index daf4a05..2541a88 100644 --- a/src/bsp/raspberrypi/linker.ld +++ b/src/bsp/raspberrypi/linker.ld @@ -42,6 +42,7 @@ SECTIONS /DISCARD/ : { *(.ARM.exidx); + *(.ARM.exidx*); *(.ARM.extab.*); } } -- cgit v1.2.1