← All tasks
cppscylladb/seastar #2494Not a task: not reproduced

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 
...
```
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]