【问题标题】:Riscv GCC 4.9.2 can't compile linux 3.14.29Riscv GCC 4.9.2 无法编译 linux 3.14.29
【发布时间】:2015-04-25 02:42:04
【问题描述】:

当我使用 riscv gcc(版本 4.9.2) 编译 linux(版本 3.14.29) 时,我遇到了一些错误,似乎 gcc 无法识别某些操作码,我该如何解决?将 gcc 更改为 4.6 版?谢谢

root@riscv-VirtualBox:/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

root@riscv-VirtualBox:/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.

【问题讨论】:

  • 你用的是riscv-tools的master分支和riscv-linux的master分支吗? (不是 riscv-gnu-toolchain 的主分支,而是 riscv-tools 主存储库指向的任何提交)。
  • 是的,我用的是riscv-tools的master分支和riscv-linux的master分支,请看下面我的安装步骤
  • 下面是我安装riscv-tools和linux的步骤,有什么问题吗?

标签: gcc compiler-errors linux-kernel version riscv


【解决方案1】:

您的存储库不匹配(这可能不是您的错)。您可以尝试查看“new_privileged_isa”分支,但问题是 RISC-V 权限 SPEC(截至 2015 年 4 月 30 日)仍在不断变化,我们不能保证分支的负责人都会一起工作。

【讨论】:

  • 谢谢你,我会试试“new_privileged_isa”分支
  • 检查“new_privileged_isa”分支对我有用。谢谢。
【解决方案2】:

克里斯,我使用以下方式安装 riscv-tools :

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

【讨论】:

    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2018-06-19
    • 2018-03-25
    • 2021-10-01
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多