(Whoops typed this hours ago but apparently did not send from Emacs. --D.)

Hi Graham,

On 28 February 2023 at 10:49, Graham Inggs wrote:
| 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

Very attentive, thanks for spotting that!

| 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.

I agree. Small and to the point patch.

TileDB upstream does everything in CMake (which I do not fully speak) so
"eventually" it would be nice to port this. 

Cheers, Dirk


| 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)),)

-- 
dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

Reply via email to