首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建riscv错误-工具(gcc新库第一个文件: genmddeps)

构建riscv错误-工具(gcc新库第一个文件: genmddeps)
EN

Stack Overflow用户
提问于 2015-08-24 16:52:46
回答 1查看 1.5K关注 0票数 1

[更新20150825:编译genmddeps.o时出现编译器-汇编器不匹配;使用的编译器是安装后的版本g++ ,即安装的Ubuntu 4.9.2-10ubuntu13 ,但所使用的汇编程序位于编译目录 ./as 中,该目录配置为 riscv64-unknown-elf**,,因此从编译器传入** --64 选项时出错。完整的命令位于文章末尾的最后一个代码块中。我还不清楚为什么会有as 的本地副本,为什么 g++ 不够聪明而不使用它.]

也许有一些简单的东西,我错了配置,但如果是这样的话,它是通过多次尝试。任何帮助都将不胜感激。

我被困在试图构建火箭芯片树的过程中,在构建riscv工具时,事情出了问题。似乎正在发生的情况是,一个非法选项正在传递给riscv汇编程序,这会导致故障:

代码语言:javascript
运行
复制
/home/kevin/Working/rocket-chip/riscv/riscv64-unknown-elf/bin/as: unrecognized option '--64'
make[3]: *** [build/genmddeps.o] Error 1
make[2]: *** [all-gcc] Error 2
make[1]: *** [all] Error 2
make: *** [stamps/build-gcc-newlib] Error 2

配置似乎并不认为它是交叉编译,如果使用riscv作为二进制,而不是系统x86_64作为二进制,我就会预料到这一点:

代码语言:javascript
运行
复制
Configuring in ./gcc
...
checking whether we are cross compiling... no

路径的设置似乎是正确的:

代码语言:javascript
运行
复制
> echo $TOP
/home/kevin/Working/rocket-chip
> echo $RISCV
/home/kevin/Working/rocket-chip/riscv
> echo $PATH
.:~/bin:~/scripts:.:~/bin:~/scripts:/home/kevin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/kevin/Working/rocket-chip/riscv/bin

(附带说明,在下载gcc-5.2.0之后,我在构建过程中看到了一些shell测试错误:

代码语言:javascript
运行
复制
/bin/sh: 1: test: false: unexpected operator

不确定这是一种症状还是已知的行为。

该系统是Ubuntu15.04运行在VMware播放器上的一个Win*盒。我正在tcsh中运行,但是在bash运行时也会发生同样的事情。在浏览riscv更改时,需要的选项似乎是-M64而不是-64,但我不确定--64来自于构建/配置文件,因为编译器的实际build命令中没有显示--64。生成日志中生成指令的完整顺序是:

代码语言:javascript
运行
复制
make[3]: Entering directory '/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/build-gcc-newlib/gcc'
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h" DEFINES="" \
/bin/bash /home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/mkconfig.sh config.h
TARGET_CPU_DEFAULT="" \
HEADERS="options.h insn-constants.h config/elfos.h config/newlib-stdint.h config/riscv/riscv.h config/riscv/elf.h config/initfini-array.h defaults.h" DEFINES="LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3" \
/bin/bash /home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/mkconfig.sh tm.h
TARGET_CPU_DEFAULT="" \
HEADERS="config/riscv/riscv-protos.h tm-preds.h" DEFINES="" \
/bin/bash /home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/mkconfig.sh tm_p.h
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h" DEFINES="" \
/bin/bash /home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/mkconfig.sh bconfig.h
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc -I/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/build -I/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/../include  -I/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/../libcpp/include  \
    -o build/genmddeps.o /home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/src/newlib-gcc/gcc/genmddeps.c
Makefile:2428: recipe for target 'build/genmddeps.o' failed
make[3]: Leaving directory '/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/build-gcc-newlib/gcc'
Makefile:4112: recipe for target 'all-gcc' failed
make[2]: Leaving directory '/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/build-gcc-newlib'
Makefile:867: recipe for target 'all' failed
make[1]: Leaving directory '/home/kevin/Working/rocket-chip/riscv-tools/riscv-gnu-toolchain/build/build-gcc-newlib'
Makefile:214: recipe for target 'stamps/build-gcc-newlib' failed
EN

回答 1

Stack Overflow用户

发布于 2015-08-25 21:37:58

.从我的路径中删除解决了这个问题:事实证明,构建过程和目录的结构方式是g++ (为x86_64安装)运行as (刚刚为RISC-V构建)。在将来构建rocket_chip时,我将自动处理这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32187632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档