2015-04-25 58 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