Current master as of 14 October 2024 fails to build with DPDK on Debian stable (bookworm) if libarchive-dev is installed
envgap__scylladb__seastar-2494
01 / FAILURE SIGNATURE
As reported upstream
eal_firmware.c:(.text+0x2a7d2): undefined reference to `archive_read_new'
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
69a344b8eb16e49f343bbbb4417bac0e7481ca60- Manifest
CMakeLists.txt- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
scylladb/seastar #2494 · read the original issue
As of DPDK 23.07, if libarchive-dev is present, it will make DPDK depend on the library. Unfortunately DPDK also has a bug in its .pc file generation and will not include libarchive dependency under any circumstance. Therefore building seastar will fail with link errors. Reproduction steps: ``` sudo docker run -it debian:bookworm /bin/bash ``` Inside: ``` apt update apt install git g++ cmake ninja-build git clone https://github.com/scylladb/seastar cd seastar git submodule update --init ./install-dependencies.sh apt install libarchive-dev ./configure.py --mode=release --enable-dpdk ninja -C build/release ``` Errors such as the following are observed: ``` [102/229] Linking CXX executable demos/block_discard_demo FAILED: demos/block_discard_demo : && /usr/bin/g++ -O2 -g -DNDEBUG demos/CMakeFiles/demo_block_discard.dir/block_discard_demo.cc.o -o demos/block_discard_demo /usr/lib/x86_64-linux-gnu/libboost_program_options.so libseastar.a /usr/lib/x86_64-linux-gnu/libboost_program_options.so /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_chrono.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so /usr/lib/x86_64-linux-gnu/libboost_atomic.so /usr/lib/x86_64-linux-gnu/libcares.so /usr/lib/x86_64-linux-gnu/libfmt.so.9.1.0 /usr/lib/x86_64-linux-gnu/liblz4.so -ldl /usr/lib/x86_64-linux-gnu/libgnutls.so -latomic /usr/lib/x86_64-linux-gnu/libsctp.so /usr/lib/x86_64-linux-gnu/libprotobuf.so /usr/lib/x86_64-linux-gnu/libyaml-cpp.so /usr/lib/x86_64-linux-gnu/libhwloc.so /usr/lib/x86_64-linux-gnu/liburing.so /usr/lib/x86_64-linux-gnu/libnuma.so && : /usr/bin/ld: libseastar.a(dpdk.o): in function `firmware_read': eal_firmware.c:(.text+0x2a7d2): undefined reference to `archive_read_new' /usr/bin/ld: eal_firmware.c:(.text+0x2a7e6): undefined reference to `archive_read_support_format_raw' /usr/bin/ld: eal_firmware.c:(.text+0x2a7f6): undefined reference to `archive_read_support_filter_xz' /usr/bin/ld: eal_firmware.c:(.text+0x2a80e): undefined reference to `archive_read_open_filename' /usr/bin/ld: eal_firmware.c:(.text+0x2a823): undefined reference to `archive_read_next_header' /usr/bin/ld: eal_firmware.c:(.text+0x2a865): undefined reference to `archive_read_data' /usr/bin/ld: eal_firmware.c:(.text+0x2a892): undefined reference to `archive_read_free' /usr/bin/ld: eal_firmware.c:(.text+0x2a8a8): undefined reference to `archive_read_free' collect2: error: ld returned 1 exit status [103/229] Linking CXX executable tests/perf/smp_submit_to_perf FAILED: tests/perf/smp_submit_to_perf ... ```
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]