Add the rust std as a custom sysroot
This commit is contained in:
15
justfile
15
justfile
@@ -12,13 +12,19 @@ mount_filesystem:
|
||||
sync_filesystem:
|
||||
sync
|
||||
|
||||
update-std:
|
||||
@cd library/std && just update-std
|
||||
|
||||
build-sysroot:
|
||||
@cd library/std && just build-sysroot
|
||||
|
||||
build_user_prog prog:
|
||||
RUSTFLAGS="-C relocation-model=pic -C link-arg=-Tuser.ld -C link-arg=-pie" cargo b {{ cargo_flags }} --package {{ prog }}
|
||||
RUSTFLAGS="-C relocation-model=pic -C link-arg=-pie --sysroot {{ justfile_directory() / "sysroot" }}" cargo b {{ cargo_flags }} --package {{ prog }}
|
||||
riscv64-elf-strip {{ bin_path / prog }}
|
||||
cp {{ bin_path / prog }} {{ "mnt/usr/bin" / prog }}
|
||||
|
||||
build: mount_filesystem (map_dir "user" f"just release=\"{{release}}\" cargo_flags=\"{{cargo_flags}}\" build_user_prog")
|
||||
cargo b {{ cargo_flags }}
|
||||
RUSTFLAGS="-Clink-arg=-Tilm.ld --sysroot {{ justfile_directory() / "sysroot" }}" cargo b {{ cargo_flags }}
|
||||
just sync_filesystem
|
||||
|
||||
run: build (runner f"{{bin_path / "kernel-rust"}}")
|
||||
@@ -34,8 +40,8 @@ qemu := f"qemu-system-riscv64 \
|
||||
-device bochs-display \
|
||||
-device virtio-keyboard-pci \
|
||||
-device virtio-mouse-pci \
|
||||
-device loader,file=disk.img,addr=0x90000000 \
|
||||
-bios none -m 512M {{qemu_flags}}"
|
||||
-device loader,file=disk.img,addr=0xA0000000 \
|
||||
-bios none -m 1024M {{qemu_flags}}"
|
||||
|
||||
# -trace \"virtio*\"
|
||||
# -d guest_errors,unimp,int"
|
||||
@@ -53,4 +59,5 @@ runner args:
|
||||
{{ qemu }} -kernel {{ args }}
|
||||
|
||||
clean:
|
||||
cd library && just clean
|
||||
cargo clean
|
||||
|
||||
Reference in New Issue
Block a user