diff --git a/kernel b/kernel index 0a79c17..a8cc3a7 160000 --- a/kernel +++ b/kernel @@ -1 +1 @@ -Subproject commit 0a79c17307d633bb6970502e1d2569879c132848 +Subproject commit a8cc3a7ea7fd6c5f4edffb7667390fc085bb1dfd diff --git a/mk/config.mk b/mk/config.mk index 687d9a6..44a0987 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -19,6 +19,7 @@ ifeq ($(UNAME),Darwin) PREFIX_BINARY=0 VB_AUDIO=coreaudio VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage + HOST_TARGET ?= $(ARCH)-apple-darwin else ifeq ($(UNAME),FreeBSD) FUMOUNT=sudo umount export NPROC=sysctl -n hw.ncpu @@ -26,12 +27,14 @@ else ifeq ($(UNAME),FreeBSD) PREFIX_BINARY=0 VB_AUDIO=pulse # To check, will probaly be OSS on most setups VBM=VBoxManage + HOST_TARGET ?= $(ARCH)-unknown-freebsd else FUMOUNT=fusermount -u export NPROC=nproc export REDOX_MAKE=make VB_AUDIO=pulse VBM=VBoxManage + HOST_TARGET ?= $(ARCH)-unknown-linux-gnu endif # Automatic variables @@ -41,7 +44,7 @@ export RUST_TARGET_PATH=$(ROOT)/kernel/targets export XARGO_RUST_SRC=$(ROOT)/rust/src ## Kernel variables -KTARGET=$(ARCH)-unknown-none +KTARGET=$(ARCH)-unknown-kernel KBUILD=build/kernel ## Userspace variables diff --git a/mk/depends.mk b/mk/depends.mk index 5e616fd..74ad363 100644 --- a/mk/depends.mk +++ b/mk/depends.mk @@ -12,8 +12,3 @@ CARGO_CONFIG_VERSION=0.1.1 ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^cargo-config v$(CARGO_CONFIG_VERSION):$$'),) $(error cargo-config $(CARGO_CONFIG_VERSION) not found, run "cargo install --force --version $(CARGO_CONFIG_VERSION) cargo-config") endif - -XARGO_VERSION=0.3.20 -ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^xargo v$(XARGO_VERSION):$$'),) -$(error xargo $(XARGO_VERSION) not found, run "cargo install --force --version $(XARGO_VERSION) xargo") -endif diff --git a/mk/kernel.mk b/mk/kernel.mk index 1adbfa6..e6cb130 100644 --- a/mk/kernel.mk +++ b/mk/kernel.mk @@ -2,19 +2,19 @@ build/libkernel.a: kernel/Cargo.lock kernel/Cargo.toml kernel/src/* kernel/src/* export PATH="$(PREFIX_PATH):$$PATH" && \ export INITFS_FOLDER=$(ROOT)/build/initfs && \ cd kernel && \ - cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ + cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ build/libkernel_coreboot.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_coreboot.tag export PATH="$(PREFIX_PATH):$$PATH" && \ export INITFS_FOLDER=$(ROOT)/build/initfs_coreboot && \ cd kernel && \ - cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ + cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_live.tag export PATH="$(PREFIX_PATH):$$PATH" && \ export INITFS_FOLDER=$(ROOT)/build/initfs_live && \ cd kernel && \ - cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ + cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ build/kernel: kernel/linkers/$(ARCH).ld mk/kernel_ld.sh build/libkernel.a export PATH="$(PREFIX_PATH):$$PATH" && \ diff --git a/mk/prefix.mk b/mk/prefix.mk index 47023ee..1529f41 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -20,16 +20,17 @@ $(PREFIX)/relibc-install: $(ROOT)/relibc | $(PREFIX)/rust-install cp -r "$(PREFIX)/rust-install" "$@.partial" rm -rf "$@.partial/$(TARGET)/include/"* cp -r "$(PREFIX)/rust-install/$(TARGET)/include/c++" "$@.partial/$(TARGET)/include/c++" + cp -r "$(PREFIX)/rust-freestanding-install/lib/rustlib/$(HOST_TARGET)/lib/" "$@.partial/lib/rustlib/$(HOST_TARGET)/" + mkdir $@.partial/lib/rustlib/src + ln -s $(ROOT)/rust $@.partial/lib/rustlib/src cd "$<" && \ export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ - export CARGO="env -u CARGO xargo" && \ + export CARGO="env -u CARGO cargo" && \ $(MAKE) -j `$(NPROC)` all && \ $(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)" cd "$@.partial" && $(PREFIX_STRIP) touch "$@.partial" mv "$@.partial" "$@" - mkdir $@/lib/rustlib/src - ln -s $(ROOT)/rust $@/lib/rustlib/src $(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install tar \ @@ -144,13 +145,15 @@ $(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install cd "$@.partial" && $(PREFIX_STRIP) touch "$@.partial" mv "$@.partial" "$@" + mkdir $@/lib/rustlib/src + ln -s $(ROOT)/rust $@/lib/rustlib/src $(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_BASE_INSTALL) $(PREFIX_FREESTANDING_INSTALL) rm -rf "$@.partial" "$@" mkdir -p "$@.partial" cd "$<" && \ export PATH="$(PREFIX_BASE_PATH):$(PREFIX_FREESTANDING_PATH):$$PATH" && \ - export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN xargo" && \ + export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN cargo" && \ export CC_$(subst -,_,$(TARGET))="$(TARGET)-gcc -isystem $(ROOT)/$@.partial/$(TARGET)/include" && \ $(MAKE) -j `$(NPROC)` all && \ $(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)" diff --git a/relibc b/relibc index b472cb8..f67973e 160000 --- a/relibc +++ b/relibc @@ -1 +1 @@ -Subproject commit b472cb87d103b4008318d67ae72ed5745a4ddc2e +Subproject commit f67973ed32f6654883078f4c4b54bf1e1fabf32c diff --git a/rust b/rust index fb4ac5a..394a0c1 160000 --- a/rust +++ b/rust @@ -1 +1 @@ -Subproject commit fb4ac5ad6ecbde2d46c021b1c7efe55a049475c3 +Subproject commit 394a0c18729868710beb9fa7a5d2a329ebc31aca