Source: tiledb Version: 2.14.1-1 Severity: serious Tags: ftbfs patch Control: affects -1 src:tiledb-py
Hi Dirk TileDB uses atomic operations but it is not linked to libatomic on the architectures that need it. This can be seen in recent build logs for armel[1], mipsel[2], powerpc[3], riscv64[4] and sh4[5], where warnings like the following are emitted: dpkg-shlibdeps: warning: symbol __atomic_fetch_add_8 used by debian/libtiledb2.13/usr/lib/arm-linux-gnueabi/libtiledb.so.2.14 found in none of the libraries and dpkg-shlibdeps: warning: symbol __atomic_compare_exchange_1 used by debian/libtiledb2.13/usr/lib/riscv64-linux-gnu/libtiledb.so.2.14 found in none of the libraries This causes at least tiledb-py to FTBFS on riscv64[6]. I have tested the patch below on riscv64 and was able to build tiledb-py successfully. It should do the right thing on the other architectures as well. Regards Graham [1] https://buildd.debian.org/status/fetch.php?pkg=tiledb&arch=armel&ver=2.14.1-1&stamp=1676252451&raw=0 [2] https://buildd.debian.org/status/fetch.php?pkg=tiledb&arch=mipsel&ver=2.14.1-1&stamp=1676341362&raw=0 [3] https://buildd.debian.org/status/fetch.php?pkg=tiledb&arch=powerpc&ver=2.14.1-1&stamp=1676251162&raw=0 [4] https://buildd.debian.org/status/fetch.php?pkg=tiledb&arch=riscv64&ver=2.14.1-1&stamp=1676255427&raw=0 [5] https://buildd.debian.org/status/fetch.php?pkg=tiledb&arch=sh4&ver=2.14.1-1&stamp=1676262874&raw=0 [6] https://buildd.debian.org/status/logs.php?pkg=tiledb-py&arch=riscv64 --- a/debian/rules +++ b/debian/rules @@ -9,6 +9,11 @@ # Workaround until https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=953855 is fixed #export DEB_CXXFLAGS_MAINT_APPEND = -DSPDLOG_FMT_EXTERNAL -DFMT_HEADER_ONLY +# Link with -latomic on architectures that need it +ifneq (,$(filter $(DEB_HOST_ARCH), armel mipsel powerpc riscv64 sh4)) + export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed +endif + #PKG_SHORT_DESC := $(shell grep 'Description:' debian/control | tail -n 1 | cut -d':' -f2 | sed 's/^\s//') #ifeq ($(filter nocheck,$(DEB_BUILD_PROFILES)),)