summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Soller <jackpot51@gmail.com>2017-09-19 20:36:44 -0600
committerJeremy Soller <jackpot51@gmail.com>2017-09-19 20:36:44 -0600
commit345c6bc4349d135c79fe20a6f5dcc3ea8c0e2349 (patch)
tree00e38800867814477469a87ebeb707d974c4c10e
parent44f776f67adecd5ba609752550b1793cb8ec0719 (diff)
New method of linking live filesystem0.3.3
Downsize live filesystem to 256 MB
m---------kernel0
-rw-r--r--mk/filesystem.mk2
-rw-r--r--mk/kernel.mk19
3 files changed, 14 insertions, 7 deletions
diff --git a/kernel b/kernel
-Subproject 1f81866afafd5a3830c078c0ad8921b5316c024
+Subproject d6b9768dc3e9cd967df0acf3eafb10d02c9f0ba
diff --git a/mk/filesystem.mk b/mk/filesystem.mk
index 9e39ae0..0bf8bbb 100644
--- a/mk/filesystem.mk
+++ b/mk/filesystem.mk
@@ -1,7 +1,7 @@
build/filesystem.bin: filesystem.toml build/kernel
-$(FUMOUNT) build/filesystem/ || true
rm -rf $@ $@.partial build/filesystem/
- dd if=/dev/zero of=$@.partial bs=1048576 count=512
+ dd if=/dev/zero of=$@.partial bs=1048576 count=256
cargo run --manifest-path redoxfs/Cargo.toml --release --bin redoxfs-mkfs $@.partial
mkdir -p build/filesystem/
cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
diff --git a/mk/kernel.mk b/mk/kernel.mk
index 32491e3..bda1bca 100644
--- a/mk/kernel.mk
+++ b/mk/kernel.mk
@@ -6,11 +6,18 @@ else
cd kernel && xargo rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@
endif
-build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs.tag build/filesystem.bin
- cd kernel && FILESYSTEM="$(PWD)/build/filesystem.bin" xargo rustc --lib --features live --target $(KTARGET) --release -- -C soft-float --emit link=../$@
+build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs.tag
+ cd kernel && xargo rustc --lib --features live --target $(KTARGET) --release -- -C soft-float --emit link=../$@
-build/kernel: build/libkernel.a kernel/linkers/$(ARCH).ld
- $(LD) --gc-sections -z max-page-size=0x1000 -T kernel/linkers/$(ARCH).ld -o $@ $<
+build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
+ $(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel.a
-build/kernel_live: build/libkernel_live.a kernel/linkers/$(ARCH).ld
- $(LD) --gc-sections -z max-page-size=0x1000 -T kernel/linkers/$(ARCH).ld -o $@ $<
+build/kernel_live: kernel/linkers/$(ARCH).ld build/libkernel_live.a build/live.o
+ $(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_live.a build/live.o
+
+build/live.o: build/filesystem.bin
+ #TODO: More general use of $(ARCH)
+ objcopy -I binary -O elf64-x86-64 -B i386:x86-64 $< $@ \
+ --redefine-sym _binary_build_filesystem_bin_start=__live_start \
+ --redefine-sym _binary_build_filesystem_bin_end=__live_end \
+ --redefine-sym _binary_build_filesystem_bin_size=__live_size