[更新 20150825: genmddeps.o のコンパイル時に、コンパイラとアセンブラの不一致があるようです。使用されているコンパイラはg++
インストールされているバージョンUbuntu 4.9.2-10ubuntu13
ですが、使用されているアセンブラは./as
として構成されているビルド ディレクトリにあるため、コンパイラから渡されるriscv64-unknown-elf
オプションでエラーが発生します。--64
完全なコマンドは、この投稿の最後のコード ブロックにあります。as
のローカル コピーがある理由g++
と、それを使用しないほど賢くない理由については(まだ) よくわかりません....]
おそらく、私が誤って設定した単純なものがあるでしょうが、もしそうなら、それは複数の試行をすり抜けています. どんな助けでも大歓迎です。
私はロケットチップツリーを構築しようとして立ち往生しており、riscv-tools の構築中に問題が発生しています。発生しているように見えるのは、不正なオプションが riscv アセンブラーに渡され、失敗の原因となっていることです。
/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
システム x86_64 をバイナリとして使用するのではなく、riscv をバイナリとして使用することを考えると、Configure はそれがクロス コンパイルであるとは考えていないようです。
Configuring in ./gcc
...
checking whether we are cross compiling... no
パスは正しく設定されているようです:
> 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 をダウンロードした後、ビルド プロセスでいくつかのシェル テスト エラーが表示されます。
/bin/sh: 1: test: false: unexpected operator
それが症状なのか、それとも既知の動作なのかは不明です。)
システムは、Win* ボックスの VMware プレーヤーで実行されている Ubuntu 15.04 です。私は tcsh で実行していますが、bash から実行しても同じことが起こります。riscv の変更を調べてみると、必要なオプションは --64 ではなく --m64 のようですが、実際のビルドには表示されないため、ビルド/構成ファイルで --64 がどこから来ているのかわかりませんコンパイラのコマンド。ビルド ログからのビルド手順の完全なシーケンスは次のとおりです。
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