CentOS 6.2では、gcc 4.8.0を使用してコンパイルエラー(dpdk-stable-17.05.2)をコンパイルしました。 コンパイルコマンド: はT = x86_64をネイティブ-linuxapp-gccのgccコンパイルdpdkエラー:そのような命令はありませんvextracti128
出力をインストールします
== Build lib/librte_eal/linuxapp/eal
CC eal.o
CC eal_hugepage_info.o
CC eal_memory.o
/tmp/ccZMmoL5.s: Assembler messages:
/tmp/ccZMmoL5.s:1189: Error: no such instruction: `vextracti128 $0x1,%ymm0,internal_config+192(%rip)'
/tmp/ccZMmoL5.s:1192: Error: no such instruction: `vextracti128 $0x1,%ymm0,internal_config+248(%rip)'
/tmp/ccZMmoL5.s:1196: Error: no such instruction: `vextracti128 $0x1,%ymm0,internal_config+304(%rip)'
また、GCC 4.9.0とdpdk-17.11は、同じコンパイルエラーを得てみました。 誰もが同じエラーを解決する、または解決策を持っていますか?
追加詳細出力を使用してコマンドをコンパイルします。
が作るT = x86_64をネイティブ-linuxapp-gccのV = 1
出力:これはgccの4.8.0のバグである
== Build lib/librte_eal/linuxapp/eal
gcc -Wp,-MD,./.eal_memory.o.d.tmp -m64 -pthread -march=native -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_AVX -DRTE_MACHINE_CPUFLAG_RDRAND -DRTE_MACHINE_CPUFLAG_AVX2 -I/root/dpdk/dpdk-stable-17.05.2/build/include -include /root/dpdk/dpdk-stable-17.05.2/build/include/rte_config.h -I/root/dpdk/dpdk-stable-17.05.2/lib/librte_eal/linuxapp/eal/include -I/root/dpdk/dpdk-stable-17.05.2/lib/librte_eal/common -I/root/dpdk/dpdk-stable-17.05.2/lib/librte_eal/common/include -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -O3 -o eal_memory.o -c /root/dpdk/dpdk-stable-17.05.2/lib/librte_eal/linuxapp/eal/eal_memory.c
/tmp/ccUFBnoh.s: Assembler messages:
/tmp/ccUFBnoh.s:1188: Error: no such instruction: `vextracti128 $0x1,%ymm0,internal_config+192(%rip)'
/tmp/ccUFBnoh.s:1191: Error: no such instruction: `vextracti128 $0x1,%ymm0,internal_config+248(%rip)'
/tmp/ccUFBnoh.s:1195: Error: no such instruction: `vextracti128 $0x1,%ymm0,internal_config+304(%rip)'
make[5]: *** [eal_memory.o] Error 1
にあなたのgccをアップグレードするには、オンに冗長でビルドを行うようにしてください。また、 'make T = x86_64-native-linuxapp-gcc'(インストールなし)を実行して、ローカルでビルドすることを確認してください。 –
GCC 4.9でも本当に古く、維持されていません。現在のGCCは[GCC 7](https://gcc.gnu.org/gcc-7/)(2017年11月)、GCC 8は数週間後に消えています。おそらくソースコードからコンパイラをビルドすることで、少なくともあなたのシステムにGCC6をインストールしてみてください。 –