diff options
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | build.rs | 20 | ||||
-rw-r--r-- | src/bsp/raspberrypi/linker.ld | 1 |
3 files changed, 28 insertions, 0 deletions
@@ -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.*); } } |