Hi,
rust-blosc2-sys ships pre-generated bindings for c-blosc2 2.15
(src/bindings.rs), and the Debian package removes the
regenerate-bindings feature, but it links against the system libblosc2,
which is 3.4.1 in unstable. Code using it crashes at run time.
I hit this while enabling the rust-blosc2-rs autopkgtests (debcargo-conf
MR !1530, which also fixed #1150809). In a sid sbuild, with the
use-system-blosc2 feature (so -l blosc2 is passed and links fine):
running 12 tests
test tests::test_list_compressors ... ok
test tests::test_get_version_string ... ok
process didn't exit successfully: ... (signal: 11, SIGSEGV: invalid
memory reference)
All the referenced symbols (blosc2_compress, blosc2_decompress,
blosc2_cbuffer_sizes, blosc2_schunk_*, blosc2_get_complib_info) are
exported by libblosc2.so.3.4.1, so this looks like a layout/ABI mismatch
between the 2.15 bindings and the 3.4 headers rather than missing
functions. I haven't verified it struct by struct.
Possible fixes: regenerate the bindings against Debian's libblosc2-dev
headers at build time (bindgen), or refresh the bundled bindings for 3.x.
Separately, the per-feature autopkgtests that don't enable
use-system-blosc2 can't link at all (Debian's build.rs only links the
system library under that feature), so those test combinations should
probably be marked broken or always include use-system-blosc2.
Regards,
Ayushman