From e12074c936aa83efe7934941f7f5bd261b72a208 Mon Sep 17 00:00:00 2001 From: WangRunji Date: Fri, 12 Apr 2019 00:23:34 +0800 Subject: [PATCH] replace gnu binutils with cargo-binutils --- .travis.yml | 7 ++++--- README.md | 11 ++++++----- kernel/Makefile | 11 +++-------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9e99092..1b3e81a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,8 +36,8 @@ matrix: install: - if [ $ARCH = riscv32 ] || [ $ARCH = riscv64 ]; then - [ $TRAVIS_OS_NAME = linux ] && export FILE="riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14"; - [ $TRAVIS_OS_NAME = osx ] && export FILE="riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-apple-darwin"; + [ $TRAVIS_OS_NAME = linux ] && export FILE="riscv64-unknown-elf-gcc-8.2.0-2019.02.0-x86_64-linux-ubuntu14"; + [ $TRAVIS_OS_NAME = osx ] && export FILE="riscv64-unknown-elf-gcc-8.2.0-2019.02.0-x86_64-apple-darwin"; wget https://static.dev.sifive.com/dev-tools/$FILE.tar.gz; tar xf $FILE.tar.gz; export PATH=$PATH:$PWD/$FILE/bin; @@ -103,7 +103,8 @@ install: before_script: - - rustup component add rust-src + - rustup component add rust-src llvm-tools-preview + - (test -x $HOME/.cargo/bin/cargo-objdump || cargo install cargo-binutils) - (test -x $HOME/.cargo/bin/cargo-xbuild || cargo install cargo-xbuild) - if [ $ARCH = x86_64 ]; then (test -x $HOME/.cargo/bin/bootimage || cargo install bootimage); diff --git a/README.md b/README.md index 9907e44..7bc1057 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Rust version of THU [uCore OS Plus](https://github.com/chyyuu/ucore_os_plus). Going to be the next generation teaching operating system. -Supported architectures: x86_64, RISCV32/64, AArch64, MIPS (planned) +Supported architectures: x86_64, RISCV32/64, AArch64, MIPS32 Tested boards: QEMU, HiFive Unleashed, x86_64 PC (i5/i7), Raspberry Pi 3B+ @@ -18,7 +18,7 @@ Tested boards: QEMU, HiFive Unleashed, x86_64 PC (i5/i7), Raspberry Pi 3B+ ### Environment -* [Rust](https://www.rust-lang.org) toolchain at nightly-2019-02-16 +* [Rust](https://www.rust-lang.org) toolchain at nightly-2019-03-05 * Cargo tools: [cargo-xbuild](https://github.com/rust-osdev/cargo-xbuild) * [QEMU](https://www.qemu.org) >= 3.1.0 * [bootimage](https://github.com/rust-osdev/bootimage) (for x86_64) @@ -32,7 +32,8 @@ See [Travis script](./.travis.yml) for details. ### How to run ```bash -$ rustup component add rust-src +$ rustup component add rust-src llvm-tools-preview +$ cargo install cargo-binutils $ cargo install cargo-xbuild --force $ cargo install bootimage --version 0.5.7 --force ``` @@ -40,9 +41,9 @@ $ cargo install bootimage --version 0.5.7 --force ```bash $ git clone https://github.com/rcore-os/rCore.git --recursive $ cd rCore/user -$ make sfsimg arch={riscv32,riscv64,x86_64,aarch64} # requires x86_64-linux-musl-gcc or musl-gcc +$ make sfsimg arch={riscv32,riscv64,x86_64,aarch64,mipsel} # requires $(arch)-linux-musl-gcc $ cd ../kernel -$ make run arch={riscv32,riscv64,x86_64,aarch64} mode=release +$ make run arch={riscv32,riscv64,x86_64,aarch64,mipsel} mode=release $ make run arch=x86_64 mode=release pci_passthru=0000:00:00.1 # for ixgbe real nic, find its pci (bus, dev, func) first ``` diff --git a/kernel/Makefile b/kernel/Makefile index e6592a5..b8edfb8 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -216,16 +216,11 @@ ifeq (,$(shell which $(prefix)ld)) endif endif -ld := $(prefix)ld -objdump := $(prefix)objdump -objcopy := $(prefix)objcopy -cc := $(prefix)gcc -as := $(prefix)as gdb := $(prefix)gdb -strip := $(prefix)strip +objdump := cargo objdump -- -arch-name=$(subst _,-,$(arch)) +objcopy := cargo objcopy -- --binary-architecture=$(subst _,-,$(arch)) +strip := cargo strip -- dtc := dtc -export CC = $(cc) - hostcc := gcc .PHONY: all clean build asm doc debug kernel sfsimg install run justrun runnet justrunnet runui justrunui runtest justruntest