aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rw-r--r--build.rs20
-rw-r--r--src/bsp/raspberrypi/linker.ld1
3 files changed, 28 insertions, 0 deletions
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.*);
}
}