2015-04-25 2 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-инструментов и ведущую ветвь riscv-linux? (и НЕ ведущую ветвь riscv-gnu-toolchain, но на какой-либо фиксатор указывает мастер-репозиторий riscv-tools). – Chris

+0

да, я использовал главную ветвь riscv-tools и ведущую ветвь riscv-linux, см. Мой шаг установки ниже – lei

+0

ниже - мои шаги по установке riscv-tools и linux, есть ли что-то не так? – lei

ответ

2

Существует несовпадение ваши репозитории (это, вероятно, не ваша ошибка). Вы можете попробовать и проверить филиалы «new_privileged_isa», но проблема в том, что спецификация привилегий RISC-V SPEC (по состоянию на 2015 год 30 апреля) все еще находится в движении, и мы не можем гарантировать, что руководители филиалов будут работать вместе.

+0

thank u, я попробую ветки «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