Created attachment 13720 [details] compressed library that caused the assert. This is with the current trunk as of: c00add2a211d7d6a380ce5a248accca978975933 abidw --abidiff /home/ben/Shared/Work/spack/opt/spack/linux-fedora34-skylake/gcc-11.2.1/trilinos-13.0.1-sdmgk622poalvyr77rod5ygx3p25yhyx/lib/libepetra.so.13.0 <snip> abidw: ../../../libabigail/src/abg-dwarf-reader.cc:11663: void abigail::dwarf_reader::finish_member_function_reading(Dwarf_Die*, const function_decl_sptr&, abigail::ir::class_or_union_sptr, abigail::dwarf_reader::read_context&): Assertion `__abg_cond__' failed. Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 Downloading source file /usr/src/debug/glibc-2.33-20.fc34.x86_64/signal/../sysdeps/unix/sysv/linux/raise.c... 49 return ret; #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007ffff75148a4 in __GI_abort () at abort.c:79 #2 0x00007ffff7514789 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:92 #3 0x00007ffff7523a16 in __GI___assert_fail (assertion=0x7ffff7f34e15 "__abg_cond__", file=0x7ffff7f49310 "../../../libabigail/src/abg-dwarf-reader.cc", line=11663, function=0x7ffff7f4bc60 "void abigail::dwarf_reader::finish_member_function_reading(Dwarf_Die*, const function_decl_sptr&, abigail::ir::class_or_union_sptr, abigail::dwarf_reader::read_context&)") at assert.c:101 #4 0x00007ffff7ec96b2 in abigail::dwarf_reader::finish_member_function_reading (die=0x7fffffffc300, f=std::shared_ptr<abigail::ir::function_decl> (use count 3, weak count 0) = {...}, klass=std::shared_ptr<abigail::ir::class_or_union> (use count 2, weak count 0) = {...}, ctxt=...) at ../../../libabigail/src/abg-dwarf-reader.cc:11663 #5 0x00007ffff7edb776 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=0x7fffffffc300, scope=<optimized out>, called_from_public_decl=<optimized out>, where_offset=910651, is_declaration_only=false, is_required_decl_spec=false) at ../../../libabigail/src/abg-dwarf-reader.cc:15219 #6 0x00007ffff7edd814 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=0x7fffffffc300, called_from_public_decl=<optimized out>, where_offset=910651) at /usr/include/c++/11/bits/shared_ptr_base.h:1295 #7 0x00007ffff7ecb9f3 in abigail::dwarf_reader::build_translation_unit_and_add_to_ir (ctxt=..., die=0x7fffffffc2e0, address_size=<optimized out>) at ../../../libabigail/src/abg-dwarf-reader.cc:6703 #8 0x00007ffff7ee603a in abigail::dwarf_reader::read_debug_info_into_corpus (ctxt=...) at ../../../libabigail/src/abg-dwarf-reader.cc:14384 #9 abigail::dwarf_reader::read_corpus_from_elf (ctxt=..., status=@0x7fffffffc8b4: abigail::dwarf_reader::STATUS_UNKNOWN) at ../../../libabigail/src/abg-dwarf-reader.cc:15636 #10 0x0000000000404ce9 in load_corpus_and_write_abixml (opts=..., context=std::shared_ptr<abigail::dwarf_reader::read_context> (use count 1, weak count 0) = {...}, env=std::shared_ptr<abigail::ir::environment> (use count 1, weak count 0) = {...}, argv=0x7fffffffce38) at ../../../libabigail/tools/abidw.cc:505 #11 main (argc=<optimized out>, argv=0x7fffffffce38) at ../../../libabigail/tools/abidw.cc:893 This was at a similar location as 28324 but the function is different.
This failure continues to exist with trunk as of 7f57aa7959ef4a715822b0d3fb2647bbad90afc8 but the location and the fingerprint of the failure is entirely different. Starting program: /home/ben/Shared/Work/test/libabigail-x86_64/bin/abidw --abidiff /home/ben/Shared/Work/spack/opt/spack/linux-fedora34-skylake/gcc-11.2.1/trilinos-13.0.1-j5fl5elhu3aaqmmapg24qpil4whx5hur/lib/liblocaepetra.so.13.0 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Downloading separate debug info for /lib64/libldap_r-2.4.so.2... Downloading separate debug info for /home/ben/.cache/debuginfod_client/4cfc654d72336e0cd78467fa72540032d161b3ea/debuginfo... Downloading separate debug info for /lib64/liblber-2.4.so.2... abidw: ../../../libabigail/src/abg-comparison.cc:5272: void abigail::comparison::class_diff::ensure_lookup_tables_populated() const: Assertion `__abg_cond__' failed. Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 49 return ret; #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007ffff75148a4 in __GI_abort () at abort.c:79 #2 0x00007ffff7514789 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:92 #3 0x00007ffff7523a16 in __GI___assert_fail (assertion=0x7ffff7f34f15 "__abg_cond__", file=0x7ffff7f3d400 "../../../libabigail/src/abg-comparison.cc", line=5272, function=0x7ffff7f3fa38 "void abigail::comparison::class_diff::ensure_lookup_tables_populated() const") at assert.c:101 #4 0x00007ffff7e11865 in abigail::comparison::class_diff::ensure_lookup_tables_populated (this=0xbd50b0) at ../../../libabigail/src/abg-comparison.cc:5272 #5 0x00007ffff7e12898 in abigail::comparison::compute_diff (first=..., second=..., ctxt=...) at /usr/include/c++/11/bits/shared_ptr_base.h:1295 #6 0x00007ffff7dfec1c in abigail::comparison::try_to_diff<abigail::ir::class_decl> (ctxt=..., second=..., first=...) at ../../../libabigail/src/abg-comparison.cc:2747 #7 abigail::comparison::compute_diff_for_types (first=..., second=..., ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:2802 #8 0x00007ffff7e042ff in abigail::comparison::compute_diff (first=std::shared_ptr<abigail::ir::qualified_type_def> (use count 17, weak count 5) = {...}, second=std::shared_ptr<abigail::ir::qualified_type_def> (use count 18, weak count 4) = {...}, ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:3955 #9 0x00007ffff7e30396 in abigail::comparison::try_to_diff<abigail::ir::qualified_type_def> (first=..., second=..., ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:2704 #10 0x00007ffff7dff844 in abigail::comparison::compute_diff_for_types (first=..., second=..., ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:2806 #11 0x00007ffff7e0695f in abigail::comparison::compute_diff (first=std::shared_ptr<abigail::ir::reference_type_def> (use count 17, weak count 13) = {...}, second=std::shared_ptr<abigail::ir::reference_type_def> (use count 18, weak count 3) = {...}, ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:3795 #12 0x00007ffff7dff3f9 in abigail::comparison::try_to_diff<abigail::ir::reference_type_def> (ctxt=..., second=..., first=...) at ../../../libabigail/src/abg-comparison.cc:2704 #13 abigail::comparison::compute_diff_for_types (first=..., second=..., ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:2804 #14 0x00007ffff7e00576 in abigail::comparison::compute_diff (first=..., second=..., ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:3176 #15 0x00007ffff7e193bc in abigail::comparison::function_type_diff::ensure_lookup_tables_populated (this=0x477ada0) at ../../../libabigail/src/abg-comparison.cc:6760 #16 0x00007ffff7e1b532 in abigail::comparison::compute_diff (first=..., second=..., ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:7063 #17 0x00007ffff7e21995 in abigail::comparison::compute_diff (first=std::shared_ptr<abigail::ir::function_decl> (use count 2, weak count 0) = {...}, second=std::shared_ptr<abigail::ir::function_decl> (use count 2, weak count 0) = {...}, ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at ../../../libabigail/src/abg-comparison.cc:7209 #18 0x00007ffff7e28073 in abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated (this=0xa96700) at ../../../libabigail/src/abg-comparison.cc:8929 #19 0x00007ffff7e322fa in abigail::comparison::compute_diff (f=std::shared_ptr<abigail::ir::corpus> (use count 3, weak count 0) = {...}, s=std::shared_ptr<abigail::ir::corpus> (use count 4, weak count 0) = {...}, ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 27, weak count 786) = {...}) at /usr/include/c++/11/bits/unique_ptr.h:173 #20 0x00000000004058ef in load_corpus_and_write_abixml (opts=..., context=std::shared_ptr<abigail::dwarf_reader::read_context> (empty) = {...}, env=std::shared_ptr<abigail::ir::environment> (use count 1, weak count 0) = {...}, argv=0x7fffffffcce8) at ../../../libabigail/tools/abidw.cc:635 #21 main (argc=<optimized out>, argv=0x7fffffffcce8) at ../../../libabigail/tools/abidw.cc:915
I currently have three libraries which fail with this assert and they are all part of Trilinos. Description: The Trilinos Project is an effort to develop algorithms and enabling technologies within an object-oriented software framework for the solution of large-scale, complex multi-physics engineering and scientific problems. A unique design feature of Trilinos is its focus on packages. Homepage: https://trilinos.org/
This should now be fixed by commit https://sourceware.org/git/?p=libabigail.git;a=commit;h=861e4670b611b2f95d69f68bb1edaa15ab5f3aa5. Thanks!
Closing.