Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build failed uhd 4.8.0.0 with dpdk installed in dedicated path , CFLAGS not set with cmake #840

Open
KarimH22 opened this issue Feb 27, 2025 · 1 comment

Comments

@KarimH22
Copy link

KarimH22 commented Feb 27, 2025

Hello

I tried to build uhd 4.8.0.0 and strangely the DPDK_CFLAGS are not added to build transport.
I ran cmake

PKG_CONFIG_PATH=/opt/dpdk/lib/x86_64-linux-gnu/pkgconfig/ cmake options

  1. I got
uhd-4.8.0.0/host/lib/include/uhdlib/transport/dpdk/common.hpp:23:10: fatal error: rte_arp.h: No such file or directory
   23 | #include <rte_arp.h>
      |          ^~~~~~~~~~~

You pushed in host/lib/CMakeLists.txt
target_compile_options(uhd PRIVATE ${DPDK_CFLAGS})
but building with make VERBOSE=1
I dont see DPDK_CFLAGS

It is better to keep in
host/lib/transport/CMakeLists.txt

include_directories(${DPDK_INCLUDE_DIRS})

I have
cmake --version
cmake version 3.28.3

  1. so adding the previous line I can see I still do not have DPDK_CFLAGS
Building CXX object lib/CMakeFiles/uhd_static.dir/transport/uhd-dpdk/dpdk_common.cpp.o
cd /tmp/uhd-4.8.0.0/host/build/lib && /usr/bin/c++ -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DBOOST_ASIO_HAS_STD_STRING_VIEW -DBOOST_ERROR_CODE_HEADER_ONLY -DHAVE_CONFIG_H -DHAVE_DPDK -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -DUHD_STATIC_LIB -I/tmp/uhd-4.8.0.0/host/build/include -I/tmp/uhd-4.8.0.0/host/include -I/opt//boost/include -I/tmp/uhd-4.8.0.0/host/lib/include -I/tmp/uhd-4.8.0.0/host/build/lib/include -I/tmp/uhd-4.8.0.0/host/lib/deps/flatbuffers/include -I/tmp/uhd-4.8.0.0/host/build/lib/ic_reg_maps -I/tmp/uhd-4.8.0.0/host/lib/convert -I/tmp/uhd-4.8.0.0/host/build/lib/convert -I/tmp/uhd-4.8.0.0/host/lib/usrp -I/tmp/uhd-4.8.0.0/host/lib/usrp/common/ad9361_driver -I/tmp/uhd-4.8.0.0/host/lib/usrp/common -I/tmp/uhd-4.8.0.0/host/build/lib/transport/nirio/lvbitx -I/usr/include/libusb-1.0 -I/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk -I/opt//dpdk/include -I/opt//libpcap/include -I/usr/include/libnl3 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/tmp/uhd-4.8.0.0/host/lib/deps/rpclib/include -I/tmp/uhd-4.8.0.0/host/build/_cmrc/include -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -std=gnu++17 -fPIC   -Wall -Wextra -Wsign-compare -MD -MT lib/CMakeFiles/uhd_static.dir/transport/uhd-dpdk/dpdk_common.cpp.o -MF CMakeFiles/uhd_static.dir/transport/uhd-dpdk/dpdk_common.cpp.o.d -o CMakeFiles/uhd_static.dir/transport/uhd-dpdk/dpdk_common.cpp.o -c /tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp
/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp: In constructor ‘uhd::transport::dpdk::dpdk_port::dpdk_port(uhd::transport::dpdk::port_id_t, size_t, uint16_t, uint16_t, rte_mempool*, rte_mempool*, std::string)’:
/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp:95:25: warning: ignoring return value of ‘int rte_eth_dev_info_get(uint16_t, rte_eth_dev_info*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  95 |     rte_eth_dev_info_get(_port, &dev_info);
     |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp: In member function ‘void uhd::transport::dpdk::dpdk_ctx::init(const uhd::device_addr_t&)’:
/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp:566:33: warning: ignoring return value of ‘int rte_eth_link_get(uint16_t, rte_eth_link*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 566 |                 rte_eth_link_get(portid, &link);
     |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp: In member function ‘int uhd::transport::dpdk::dpdk_ctx::get_port_link_status(uhd::transport::dpdk::port_id_t) const’:
/tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp:651:28: warning: ignoring return value of ‘int rte_eth_link_get_nowait(uint16_t, rte_eth_link*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 651 |     rte_eth_link_get_nowait(portid, &link);
     |     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/include/immintrin.h:37,
                from /opt/dpdk/include/rte_rtm.h:8,
                from /opt/dpdk/include/rte_spinlock.h:9,
                from /opt/dpdk/include/rte_mempool.h:44,
                from /opt/dpdk/include/rte_mbuf.h:38,
                from /opt/dpdk/include/rte_ether.h:20,
                from /opt/dpdk/include/rte_arp.h:15,
                from /tmp/uhd-4.8.0.0/host/lib/include/uhdlib/transport/dpdk/common.hpp:23,
                from /tmp/uhd-4.8.0.0/host/lib/include/uhdlib/transport/dpdk/arp.hpp:8,
                from /tmp/uhd-4.8.0.0/host/lib/transport/uhd-dpdk/dpdk_common.cpp:9:
/usr/lib/gcc/x86_64-linux-gnu/14/include/tmmintrin.h: In function ‘void* rte_memcpy_generic(void*, const void*, size_t)’:
/usr/lib/gcc/x86_64-linux-gnu/14/include/tmmintrin.h:185:1: error: inlining failed in call to ‘always_inline’ ‘__m128i _mm_alignr_epi8(__m128i, __m128i, int)’: target specific option mismatch
 185 | _mm_alignr_epi8(__m128i __X, __m128i __Y, const int __N)
     | ^~~~~~~~~~~~~~~
In file included from /opt//dpdk/include/rte_mempool.h:50:
/opt/dpdk/include/rte_memcpy.h:515:25: note: called from here
 515 |         _mm_storeu_si128((__m128i *)(void *)((uint8_t *)dst + 7 * 16), _mm_alignr_epi8(xmm8, xmm7, offset));        \
     |         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/dpdk/include/rte_memcpy.h:557:16: note: in expansion of macro ‘MOVEUNALIGNED_LEFT47_IMM’
 557 |     case 0x01: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x01); break;    \
@KarimH22 KarimH22 changed the title build failed uhd 4.8.0.0 with dpdk installed in dedicated path (not /usr/) build failed uhd 4.8.0.0 with dpdk installed in dedicated path , CFLAGS not set with cmake Feb 27, 2025
@NI-LAm
Copy link
Contributor

NI-LAm commented Feb 28, 2025

How did you install cmake? /opt look like it is not the DPDK package of your distribution. If the CFLAGS are empty there is something wrong with your DPDK installation. You can check the content of the DPDK variables in the CMakeCache.txt (they start with DPDK_) of your build folder. This is probably something to be asked in a DPDK forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants