Skip to content

Commit

Permalink
New method of linking live filesystem
Browse files Browse the repository at this point in the history
Downsize live filesystem to 256 MB
  • Loading branch information
jackpot51 committed Sep 20, 2017
1 parent 44f776f commit 345c6bc
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
2 changes: 1 addition & 1 deletion kernel
Submodule kernel updated 3 files
+2 −4 build.rs
+1 −4 src/consts.rs
+22 −7 src/scheme/live.rs
2 changes: 1 addition & 1 deletion mk/filesystem.mk
Original file line number Diff line number Diff line change
@@ -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
Expand Down
19 changes: 13 additions & 6 deletions mk/kernel.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 345c6bc

Please sign in to comment.