Created attachment 15214 [details] zfs files that trigger the assert() While building the zfs-dkms package, in the checkabi target, abidiff core dumps: https://launchpadlibrarian.net/696568269/buildlog_ubuntu-noble-amd64.zfs-linux_2.2.0-0ubuntu2_BUILDING.txt.gz abigail-2.3 was fine, and it started crashing after we moved to abigail-2.4. I was able to reproduce the issue locally with abigail src from git: $ abidiff --no-unreferenced-symbols --headers-dir1 include --suppressions ./lib/libnvpair/libnvpair.suppr ./lib/libnvpair/libnvpair.abi .libs/libnvpair.so abidiff: ../../src/abg-ir.cc:8004: virtual abigail::ir::decl_base_sptr abigail::ir::scope_decl::add_member_decl(const abigail::ir::decl_base_sptr&): Assertion `__abg_cond__' failed. Aborted (core dumped) and i bisected it down to this commit: commit d00a2cc2da9b33be5a6e5376cbee4591c042d3a3 (break5) Author: Dodji Seketeli <dodji@redhat.com> Date: Thu May 25 14:15:56 2023 +0200 Bug 30466 - harfbuzz fails self-check on f38 Does it ring any bell? I'm not familiar with abigail internals, but i'll be happy to test any patch you throw at me. I'm attaching a tarball with the offending files.
Created attachment 15215 [details] zfs files that trigger the assert()
I could reproduce the problem, thank you for reporting it. The patch https://sourceware.org/git/?p=libabigail.git;a=commit;h=40d0dcf192389fe9648128c32fe085913cc68eef should address the issue. It's in the branch users/dodji/PR31045 that can be browsed at https://sourceware.org/git/?p=libabigail.git;a=shortlog;h=refs/heads/users/dodji/PR31045. If after testing it, you confirm that it fixes the issue for you, then I'll merge the patch in the master branch of the git repository. Thank you for reporting the issue and sorry for the inconvenience.
fresh checkout of your PR31045, doesn't build: $ autoreconf -i ... $ mkdir build $ cd build $ ../configure ... $ make make --no-print-directory all-recursive Making all in include make[2]: Nothing to be done for 'all'. Making all in src CXX abg-traverse.lo CXX abg-ir.lo ../../src/abg-ir.cc: In function ‘void abigail::ir::maybe_set_translation_unit(const decl_base_sptr&, translation_unit*)’: ../../src/abg-ir.cc:8002:5: error: ‘member’ was not declared in this scope 8002 | member->set_translation_unit(tu); | ^~~~~~ ...
"paolo.pisati at canonical dot com" <sourceware-bugzilla@sourceware.org> a écrit: > --- Comment #3 from Paolo Pisati <paolo.pisati at canonical dot com> --- > fresh checkout of your PR31045, doesn't build: [...] > ../../src/abg-ir.cc: In function ‘void > abigail::ir::maybe_set_translation_unit(const decl_base_sptr&, > translation_unit*)’: > ../../src/abg-ir.cc:8002:5: error: ‘member’ was not declared in this scope > 8002 | member->set_translation_unit(tu); Ooops, indeed. Could you try again please? I have just fixed that. Sorry for the inconvenience.
Applied, rebuilt abigail and it builds zfs-dkms successfully now, thanks!
Thanks! I have applied the patch https://inbox.sourceware.org/libabigail/87h6lvdsb1.fsf@redhat.com/ to the master branch of the Git repository. That fix should be available in libabigail 2.5. Thank you for reporting this problem and sorry for the inconvenience.