2015-04-25 92 views
1

當我使用riscv gcc(verison 4.9.2)編譯linux(版本3.14.29)時,出現了一些錯誤,似乎gcc無法識別一些操作碼,我該如何解決?將gcc更改爲版本4.6?感謝Riscv GCC 4.9.2無法編譯linux 3.14.29

[email protected]:/home/riscv/riscv/linux-3.14.29# make ARCH=riscv 
scripts/kconfig/conf --silentoldconfig Kconfig 
    ...... 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h: Assembler messages: 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:22: Error: Instruction csrc requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:22: Error: Instruction csrc requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:10: Error: Instruction csrr requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:22: Error: Instruction csrc requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:22: Error: Instruction csrc requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:10: Error: Instruction csrr requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:16: Error: Instruction csrs requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:16: Error: Instruction csrs requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:10: Error: Instruction csrr requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:16: Error: Instruction csrs requires absolute expression 
/home/riscv/riscv/linux-3.14.29/arch/riscv/include/asm/irqflags.h:16: Error: Instruction csrs requires absolute expression 
make[1]: *** [init/main.o] Error 1 
make: *** [init] Error 2 

[email protected]:/home/riscv/riscv/linux-3.14.29# riscv64-unknown-elf-gcc --version 
riscv64-unknown-elf-gcc (GCC) 4.9.2 
Copyright (C) 2014 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+0

您是否使用riscv-tools的主分支和riscv-linux的主分支? (而不是riscv-gnu-toolchain的主分支,但是riscv-tools master repo指出的任何提交)。 – Chris

+0

是的,我使用riscv-tools的master分支和riscv-linux的master分支,請看下面我的安裝步驟 – lei

+0

下面是我安裝riscv-tools和linux的步驟,有什麼不對嗎? – lei

回答

2

有一個錯配你的倉庫(這可能不是你的錯)。您可以嘗試查看「new_privileged_isa」分支機構,但問題是RISC-V特權SPEC(截至2015年4月30日)仍然不穩定,我們無法保證分支機構的負責人能夠一起工作。

+0

謝謝你,我會嘗試「new_privileged_isa」分支 – lei

+1

檢查出「new_privileged_isa」分支爲我工作。謝謝。 – plafratt

0

克里斯,我用下面的方法來安裝riscv工具:

git clone https://github.com/riscv/riscv-tools.git 
git submodule update --init --recursive 
./build.sh 

,並使用以下方式來獲得Linux源代碼:

curl https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.29.tar.xz | tar -xJ 
cd linux-3.14.29 
git init 
git remote add origin https://github.com/riscv/riscv-linux.git 
git fetch 
git checkout -f -t origin/master