インテルの Web サイトから MPSS ソフトウェア スタック バージョン 3.5.2 のソース コードをダウンロードしました。xeon phi 移植 GCC (GCC 4.7.0 から移植) をソースからコンパイルし、ローカル サブディレクトリにインストールしようとしています。ただし、次のエラーが発生します-
k1om-mpss-linux-gcc -dumpspecs > tmp-specs
/bin/sh: k1om-mpss-linux-gcc: command not found
私の構成は次のとおりです-
# The below directory contains the cross compiled libs
# like assembler and linker
export PATH=$HOME/xeon-phi-gcc/bin
# The configure command
../xeon-phi-gcc/configure \
--build=x86_64-linux \
--host=x86_64-mpsssdk-linux \
--target=k1om-mpss-linux \
--prefix=$HOME/cross-gcc \
--enable-languages=c,c++ \
--with-sysroot=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux \
--disable-multilib
# Compiling
make
Makefile が を呼び出しているのはなぜk1om-mpss-linux-gcc
ですか? これは、make が完了した後のクロス コンパイルされた gcc バイナリであってはなりませんか? どうすればこれを修正できますか、または何が欠けていますか?
編集 1: 構成パラメーターを に変更しました--build=x86_64-mpsssdk-linux --host=x86_64-mpsssdk-linux
。次のエラーが表示されます-
In file included from gtype-desc.c:30:0:
../../gcc-4.7.0+mpss3.5.2/gcc/tree.h:3179:11: warning: identifier ‘thread_local’ conflicts with C++ keyword [-Wc++-compat]
unsigned thread_local : 1;
^
gtype-desc.c:8696:18: error: subscripted value is neither array nor pointer nor vector
sizeof (x_rtl[0]),
^
gtype-desc.c:8815:36: error: subscripted value is neither array nor pointer nor vector
sizeof (default_target_libfuncs[0]),
^
gtype-desc.c:8899:31: error: subscripted value is neither array nor pointer nor vector
sizeof (default_target_rtl[0]),
^
gtype-desc.c:8920:31: error: subscripted value is neither array nor pointer nor vector
sizeof (default_target_rtl[0]),
^
gtype-desc.c:8927:31: error: subscripted value is neither array nor pointer nor vector
sizeof (default_target_rtl[0]),
^
gtype-desc.c:8934:31: error: subscripted value is neither array nor pointer nor vector
sizeof (default_target_rtl[0]),
^
gtype-desc.cはマシン生成ファイルです。
EDIT 2:私は今、エラーが発生しています-
/tmp/cc4aDvmI.s: Assembler messages:
/tmp/cc4aDvmI.s:94: Error: no such instruction: `kmov %esi,%k2'
/tmp/cc4aDvmI.s:147: Error: no such instruction: `kmov %edi,%k2'
/tmp/cc4aDvmI.s:255: Error: no such instruction: `kmov %r8d,%k2'
/tmp/cc4aDvmI.s:258: Error: no such instruction: `vpackstorelq %zmm0,(%rsp){%k2}'
どうすればこれを修正できますか? これらはベクトル命令のように見えますが、gcc クロス コンパイラはベクトル命令をサポートしていないと思いました。