0
votes

I am trying to build a dpdk application using dpdk v.18.08 on Centos 7.6 with gcc 4.8.5.

The application build reports this error:

[build] /opt/dpdk/dpdk-18.08/config/rte_config.h:19:10: fatal error: rte_build_config.h: No such file or directory
[build]  #include <rte_build_config.h>

I can't locate rte_build_config.h. Where does it live? Or is my configuration wrong such that it should not be required?

1
Normally if the configured target is built, the 'rte_config.h' is added under '$RTE_SDK/$RTE_TARGET/include' folder. Can you echo RTE_SDK and RTE_TARGET PLEASE - Vipin Varghese
I think I probably haven't built the target. $ echo $RTE_SDK /opt/dpdk/dpdk-18.08/ $ echo $RTE_TARGET <undefined> - DavidA
I've set $RTE_SDK to /opt/dpdk/dpdk-18.08/ and $RTE_TARGET to x86_64-native-linuxapp-gcc but /opt/dpdk/dpdk-18.08/x86_64-native-linuxapp-gcc/include contains rte_config.h but not rte_build_config.h. It's the latter I am looking for. - DavidA
Set environment variables, and 'cd $RTE_SDK/$RTE_TARGET'. Then built with 'make -j 10'. Woth tgese you can built examples - Vipin Varghese
Thanks, the rte_build_config.h issue is fixed - I was using the wrong rte_config.h. However, I now have a build error. My target is x86_64-native-linuxapp-gcc, which I assume is 64-bit, but I get this build error with my application code: /opt/dpdk/dpdk-18.08/x86_64-native-linuxapp-gcc/include/rte_memcpy.h:590:64: error: ‘__builtin_ia32_palignr128’ needs isa option -m32 -mssse3 _mm_storeu_si128((__m128i *)((uint8_t *)dst + 0 * 16), _mm_alignr_epi8(xmm1, xmm0, offset)); \ I don't know why it wants gcc option '-m32' when this is a 64-bit build. - DavidA

1 Answers

2
votes

as per the current update, passing the right environment variables RTE_SDK and RTE_TARGET solves the issues with DPDK Makefile.

If custom make file is used, add -include [DPDK target folder]/include/rte_config.h to solve the missing rte_config.h