aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--linker.ld11
-rw-r--r--stage2/x86-loadnothing.json3
3 files changed, 14 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 8656af5..4c6632e 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ magic.bin:
stage2/target/x86-loadnothing/release/stage2: stage2/src/main.rs
cd stage2 && cargo rustc --release -- --emit=obj
- ld -m elf_i386 -o stage2/target/x86-loadnothing/release/stage2.bin --oformat binary stage2/target/x86-loadnothing/release/stage2 -Ttext=0x7e00
+ ld -T linker.ld -m elf_i386 -o stage2/target/x86-loadnothing/release/stage2.bin --oformat binary stage2/target/x86-loadnothing/release/stage2 -Ttext=0x7e00
mv stage2/target/x86-loadnothing/release/stage2.bin stage2/target/x86-loadnothing/release/stage2
nothing.img: magic.bin stage2/target/x86-loadnothing/release/stage2 stage1/boot.bin
diff --git a/linker.ld b/linker.ld
new file mode 100644
index 0000000..b9fb3e5
--- /dev/null
+++ b/linker.ld
@@ -0,0 +1,11 @@
+MEMORY {
+ RAM : org = 0x7e00, l = 12K
+}
+
+SECTIONS {
+ . = 0x7e00;
+ .text :
+ {
+ *(.text)
+ } > RAM
+}
diff --git a/stage2/x86-loadnothing.json b/stage2/x86-loadnothing.json
index ee812b3..556f46e 100644
--- a/stage2/x86-loadnothing.json
+++ b/stage2/x86-loadnothing.json
@@ -12,5 +12,6 @@
"panic-strategy": "abort",
"disable-redzone": true,
"features": "-mmx,-sse,+soft-float",
- "cpu": "pentium"
+ "cpu": "pentium",
+ "relocation-model": "static"
}