Hi, On Tue, 2020-10-27 at 09:47 +0000, buildbot@builder.wildebeest.org wrote: > The Buildbot has detected a failed build on builder whole buildset > while building libabigail. > Full details are available at: > https://builder.wildebeest.org/buildbot/#builders/8/builds/557 > > Buildbot URL: https://builder.wildebeest.org/buildbot/ > > Worker for this Build: centos-x86_64 > > Build Reason: > Blamelist: Mark Wielaard > > BUILD FAILED: failed test (failure) This is a FAIL: runtestannotate during make distcheck which PASSes during make check. The runtestannotate.log is attached. It starts with: - + And from there lots of diffs because of shifted ids. I don't understand why this anonymous struct gets a different id when run under make distcheck vs make check. > The Buildbot has detected a failed build on builder > whole buildset while building libabigail. > Full details are available at: > https://builder.wildebeest.org/buildbot/#builders/9/builds/535 > > Buildbot URL: https://builder.wildebeest.org/buildbot/ > > Worker for this Build: fedora-s390x > > Build Reason: > Blamelist: Mark Wielaard > > BUILD FAILED: failed test (failure) This fails make distcheck with: ERROR: files left in build directory after distclean: ./tests/core.2971518 make[2]: *** [Makefile:859: distcleancheck] Error 1 Oddly no check fails. But there is another core file present in the make check directory. Inspecting that core file provides the following backtrace: #0 0x000003ff965c9026 in raise () from /lib64/libc.so.6 #1 0x000003ff965ab162 in abort () from /lib64/libc.so.6 #2 0x000003ff965c0af0 in __assert_fail_base () from /lib64/libc.so.6 #3 0x000003ff965c0b6e in __assert_fail () from /lib64/libc.so.6 #4 0x000003ff9706c3e6 in abigail::ir::array_type_def::subrange_type::get_length (this=0x125c220) at abg-ir.cc:14558 #5 abigail::ir::array_type_def::subrange_type::get_length (this=0x125c220) at abg-ir.cc:14558 #6 0x000003ff9709d954 in abigail::ir::array_type_def::subrange_type::as_string[abi:cxx11]() const (this=0x125c220) at /usr/include/c++/9/bits/char_traits.h:335 #7 0x000003ff9709dad4 in abigail::ir::array_type_def::subrange_type::vector_as_string[abi:cxx11](std::vector, std::allocator > > const&) (v=std::vector of length 1, capacity 1 = {...}) at /usr/include/c++/9/bits/shared_ptr_base.h:1020 #8 0x000003ff9720b496 in abigail::dwarf_reader::die_pretty_print_type (ctxt=..., die=die@entry=0x3ffecf7c850, where_offset=where_offset@entry=0) at abg-dwarf-reader.cc:11223 #9 0x000003ff97235016 in abigail::dwarf_reader::read_context::get_die_pretty_type_representation (this=this@entry=0x10b3520, die=die@entry=0x3ffecf7c850, where_offset=where_offset@entry=0) at abg-dwarf-reader.cc:3536 #10 0x000003ff972361fe in abigail::dwarf_reader::read_context::get_or_compute_canonical_die (this=this@entry=0x10b3520, die=die@entry=0x3ffecf7c850, canonical_die=..., where=where@entry=0, die_as_type=die_as_type@entry=true) at abg-dwarf-reader.cc:3158 #11 0x000003ff972368da in abigail::dwarf_reader::read_context::lookup_artifact_from_die (this=this@entry=0x10b3520, die=die@entry=0x3ffecf7c850, die_as_type=die_as_type@entry=true) at abg-dwarf-reader.cc:3632 #12 0x000003ff97236bb2 in abigail::dwarf_reader::read_context::lookup_type_from_die (this=this@entry=0x10b3520, die=die@entry=0x3ffecf7c850) at abg-dwarf-reader.cc:4064 #13 0x000003ff97205e60 in abigail::dwarf_reader::build_array_type (where_offset=9423, called_from_public_decl=, die=0x3ffecf7c850, ctxt=...) at abg-dwarf-reader.cc:14860 #14 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=die@entry=0x3ffecf7c850, scope=0x10cb700, called_from_public_decl=called_from_public_decl@entry=true, where_offset=9423, is_declaration_only=, is_required_decl_spec=false) at abg-dwarf-reader.cc:16481 #15 0x000003ff97208fe6 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., ctxt@entry=, die=0x3ffecf7c850, die@entry=, called_from_public_decl=, where_offset=where_offset@entry=9423) at abg-dwarf-reader.cc:16819 #16 0x000003ff972104ee in abigail::dwarf_reader::add_or_update_class_type (ctxt=..., die=die@entry=0x3ffecf7cfc0, scope=scope@entry=0x10cb700, is_struct=is_struct@entry=true, klass=std::shared_ptr (empty) = {...}, called_from_public_decl=true, where_offset=9423, is_declaration_only=false) at abg-dwarf-reader.cc:13743 #17 0x000003ff97206ac8 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=die@entry=0x3ffecf7cfc0, scope=0x10cb700, called_from_public_decl=called_from_public_decl@entry=true, where_offset=9423, is_declaration_only=false, is_required_decl_spec=false) at /usr/include/c++/9/bits/shared_ptr_base.h:616 #18 0x000003ff97208fe6 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=0x3ffecf7cfc0, die@entry=, called_from_public_decl=, where_offset=where_offset@entry=9423) at abg-dwarf-reader.cc:16819 #19 0x000003ff97208272 in abigail::dwarf_reader::build_typedef_type (where_offset=9423, called_from_public_decl=, die=0x3ffecf7d3a8, ctxt=...) at abg-dwarf-reader.cc:14932 #20 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=die@entry=0x3ffecf7d3a8, scope=0x10cb700, called_from_public_decl=called_from_public_decl@entry=true, where_offset=9423, is_declaration_only=, is_required_decl_spec=false) at abg-dwarf-reader.cc:16280 #21 0x000003ff97208fe6 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=0x3ffecf7d3a8, die@entry=, called_from_public_decl=, where_offset=where_offset@entry=9423) at abg-dwarf-reader.cc:16819 #22 0x000003ff97207e66 in abigail::dwarf_reader::build_pointer_type_def (where_offset=9423, called_from_public_decl=, die=0x3ffecf7d670, ctxt=...) at abg-dwarf-reader.cc:14309 #23 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=die@entry=0x3ffecf7d670, scope=0x10cb700, called_from_public_decl=called_from_public_decl@entry=true, where_offset=9423, is_declaration_only=false, is_required_decl_spec=false) at abg-dwarf-reader.cc:16295 #24 0x000003ff97208fe6 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=die@entry=0x3ffecf7d670, called_from_public_decl=called_from_public_decl@entry=true, where_offset=where_offset@entry=9423) at abg-dwarf-reader.cc:16819 #25 0x000003ff97214172 in abigail::dwarf_reader::build_function_type (ctxt=..., die=die@entry=0x3ffecf7de20, is_method=std::shared_ptr (empty) = {...}, where_offset=, where_offset@entry=9423) at abg-dwarf-reader.cc:14544 #26 0x000003ff972153e8 in abigail::dwarf_reader::build_function_decl (ctxt=..., die=die@entry=0x3ffecf7de20, where_offset=where_offset@entry=9423, fn=std::shared_ptr (empty) = {...}) at /usr/include/c++/9/ext/atomicity.h:96 #27 0x000003ff97205b64 in abigail::dwarf_reader::build_or_get_fn_decl_if_not_suppressed (result=..., is_declaration_only=, where_offset=9423, fn_die=0x3ffecf7de20, scope=, ctxt=...) at /usr/include/c++/9/ext/atomicity.h:96 #28 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=die@entry=0x3ffecf7de20, scope=0x10cb700, called_from_public_decl=called_from_public_decl@entry=true, where_offset=9423, is_declaration_only=, is_required_decl_spec=false) at abg-dwarf-reader.cc:16663 #29 0x000003ff97208fe6 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., die=0x3ffecf7de20, die@entry=, called_from_public_decl=called_from_public_decl@entry=true, where_offset=where_offset@entry=9423) at abg-dwarf-reader.cc:16819 #30 0x000003ff9721a096 in abigail::dwarf_reader::build_translation_unit_and_add_to_ir (ctxt=..., die=die@entry=0x3ffecf7e1b0, address_size=) at abg-dwarf-reader.cc:8474 #31 0x000003ff9721ba00 in abigail::dwarf_reader::read_debug_info_into_corpus (ctxt=...) at abg-dwarf-reader.cc:15865 #32 0x000003ff9721d708 in abigail::dwarf_reader::read_corpus_from_elf (ctxt=..., status=@0x3ffecf7e3f4: abigail::dwarf_reader::STATUS_UNKNOWN) at abg-dwarf-reader.cc:17078 #33 0x0000000001005d74 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x3ffecf7e4d0, __in_chrg=) at /usr/include/c++/9/bits/shared_ptr_base.h:1169 #34 std::__shared_ptr::~__shared_ptr (this=0x3ffecf7e4c8, __in_chrg=) at /usr/include/c++/9/bits/shared_ptr_base.h:1169 #35 std::shared_ptr::~shared_ptr (this=0x3ffecf7e4c8, __in_chrg=) at /usr/include/c++/9/bits/shared_ptr.h:103 #36 main (argc=, argv=0x3ffecf7e948) at abidiff.cc:1241 So that is here: 14557 uint64_t 14558 array_type_def::subrange_type::get_length() const 14559 { 14560 if (is_infinite()) 14561 return 0; 14562 (gdb) 14563 ABG_ASSERT(get_upper_bound() >= get_lower_bound()); 14564 return get_upper_bound() - get_lower_bound() + 1; 14565 } With (gdb) print this $1 = (const abigail::ir::array_type_def::subrange_type * const) 0x125c220 (gdb) print *this $2 = { = { = { = { = {_vptr.traversable_base = 0x3ff972f5f40 , priv_ = std::shared_ptr (use count 1, weak count 0) = {get() = 0x125c290}}, }, priv_ = std::shared_ptr (use count 1, weak count 0) = { get() = 0x125c160}}, _vptr.type_base = 0x3ff972f5ec8 , priv_ = 0x125c2f0}, = { _vptr.decl_base = 0x3ff972f5fd0 , priv_ = 0x125c330}, _vptr.subrange_type = 0x3ff972f5e38 , priv_ = std::shared_ptr (use count 1, weak count 0) = {get() = 0x125c3c0}} (gdb) print *this.priv_ $3 = {lower_bound_ = {s_ = abigail::ir::array_type_def::subrange_type::bound_value::UNSIGNED_SIGNEDNESS, v_ = {unsigned_ = 0, signed_ = 0}}, upper_bound_ = {s_ = abigail::ir::array_type_def::subrange_type::bound_value::SIGNED_SIGNEDNESS, v_ = { unsigned_ = 18446744073709551559, signed_ = -57}}, underlying_type_ = std::weak_ptr (empty) = {get() = 0x0}, language_ = abigail::ir::translation_unit::LANG_C11, infinite_ = false} Looking through the main argv this must be: abidiff --no-default-suppression --no-linkage-name --no-show-locs --no-redundant /home/mjw/bb/wildebeest/libabigail-fedora-s390x/build/libabigail-1.8/_build/sub/../../tests/data/test-diff-filter/test34-libjemalloc.so.2-gcc-6.1.0 /home/mjw/bb/wildebeest/libabigail-fedora-s390x/build/libabigail-1.8/_build/sub/../../tests/data/test-diff-filter/test34-libjemalloc.so.2-intel-16.0.3