On 6/28/22 23:43, Mark Wielaard wrote: > Hi, > > On Mon, Jun 27, 2022 at 09:25:23AM +0200, Martin Liška wrote: >> On 6/26/22 00:17, Mark Wielaard wrote: >>> The build is now green on all builders except one: >>> https://builder.sourceware.org/buildbot/#/builders?tags=dwz >>> dwz-opensusetw-x86_64 fails one testcase: odr-struct-ns.sh >>> https://builder.sourceware.org/buildbot/#/builders/100/builds/2 >>> >>> Martin, could you take a look at what is different on tumbleweed from >>> the other builders that makes that testcase fail? >> >> It's going to be likely GCC compiler version that plays role. >> >> Anyway, it's caused by: >> >> expected_decl_cnt: 20, decl_cnt: 10 > > I took a quick look and this seems to be caused by lots of extra > DW_AT_declaration in the original binary: > > readelf -wi odr-struct-ns | grep -3 DW_AT_declaration | grep name > <1c0> DW_AT_name : (indirect string, offset: 0x3f1): sockaddr_at > <1d4> DW_AT_name : (indirect string, offset: 0x450): sockaddr_ax25 > <1e8> DW_AT_name : (indirect string, offset: 0x366): sockaddr_dl > <1fc> DW_AT_name : (indirect string, offset: 0x382): sockaddr_eon > <2c4> DW_AT_name : (indirect string, offset: 0x5e): sockaddr_inarp > <2d8> DW_AT_name : (indirect string, offset: 0xa7): sockaddr_ipx > <2ec> DW_AT_name : (indirect string, offset: 0x51): sockaddr_iso > <300> DW_AT_name : (indirect string, offset: 0x11c): sockaddr_ns > <314> DW_AT_name : (indirect string, offset: 0x86): sockaddr_un > <328> DW_AT_name : (indirect string, offset: 0x3bd): sockaddr_x25 > <671> DW_AT_name : (indirect string, offset: 0x3f1): sockaddr_at > <685> DW_AT_name : (indirect string, offset: 0x450): sockaddr_ax25 > <699> DW_AT_name : (indirect string, offset: 0x366): sockaddr_dl > <6ad> DW_AT_name : (indirect string, offset: 0x382): sockaddr_eon > <770> DW_AT_name : (indirect string, offset: 0x5e): sockaddr_inarp > <784> DW_AT_name : (indirect string, offset: 0xa7): sockaddr_ipx > <798> DW_AT_name : (indirect string, offset: 0x51): sockaddr_iso > <7ac> DW_AT_name : (indirect string, offset: 0x11c): sockaddr_ns > <7c0> DW_AT_name : (indirect string, offset: 0x86): sockaddr_un > <7d4> DW_AT_name : (indirect string, offset: 0x3bd): sockaddr_x25 > <9e0> DW_AT_name : bbb > DW_AT_name : ccc Just to summarize it what we have for Tumbleweed and Leap: TW: ==before== <1c0> DW_AT_name : (indirect string, offset: 0x3f1): sockaddr_at <1d4> DW_AT_name : (indirect string, offset: 0x450): sockaddr_ax25 <1e8> DW_AT_name : (indirect string, offset: 0x366): sockaddr_dl <1fc> DW_AT_name : (indirect string, offset: 0x382): sockaddr_eon <2c4> DW_AT_name : (indirect string, offset: 0x5e): sockaddr_inarp <2d8> DW_AT_name : (indirect string, offset: 0xa7): sockaddr_ipx <2ec> DW_AT_name : (indirect string, offset: 0x51): sockaddr_iso <300> DW_AT_name : (indirect string, offset: 0x11c): sockaddr_ns <314> DW_AT_name : (indirect string, offset: 0x86): sockaddr_un <328> DW_AT_name : (indirect string, offset: 0x3bd): sockaddr_x25 <671> DW_AT_name : (indirect string, offset: 0x3f1): sockaddr_at <685> DW_AT_name : (indirect string, offset: 0x450): sockaddr_ax25 <699> DW_AT_name : (indirect string, offset: 0x366): sockaddr_dl <6ad> DW_AT_name : (indirect string, offset: 0x382): sockaddr_eon <770> DW_AT_name : (indirect string, offset: 0x5e): sockaddr_inarp <784> DW_AT_name : (indirect string, offset: 0xa7): sockaddr_ipx <798> DW_AT_name : (indirect string, offset: 0x51): sockaddr_iso <7ac> DW_AT_name : (indirect string, offset: 0x11c): sockaddr_ns <7c0> DW_AT_name : (indirect string, offset: 0x86): sockaddr_un <7d4> DW_AT_name : (indirect string, offset: 0x3bd): sockaddr_x25 <9e0> DW_AT_name : bbb DW_AT_name : ccc ==after== DW_AT_name : (indirect string, offset: 0x3f1): sockaddr_at DW_AT_name : (indirect string, offset: 0x450): sockaddr_ax25 <10a> DW_AT_name : (indirect string, offset: 0x366): sockaddr_dl <118> DW_AT_name : (indirect string, offset: 0x382): sockaddr_eon <1b6> DW_AT_name : (indirect string, offset: 0x5e): sockaddr_inarp <1c4> DW_AT_name : (indirect string, offset: 0xa7): sockaddr_ipx <1d2> DW_AT_name : (indirect string, offset: 0x51): sockaddr_iso <1e0> DW_AT_name : (indirect string, offset: 0x11c): sockaddr_ns <1ee> DW_AT_name : (indirect string, offset: 0x86): sockaddr_un <1fc> DW_AT_name : (indirect string, offset: 0x3bd): sockaddr_x25 while Leap has: ==before== <105> DW_AT_name : bbb <1cb> DW_AT_name : ccc <2b3> DW_AT_name : (indirect string, offset: 0x4b6): __preinit_array_end <2be> DW_AT_name : (indirect string, offset: 0x2a5): __init_array_start <2c9> DW_AT_name : (indirect string, offset: 0x4ca): __init_array_end <2f1> DW_AT_name : (indirect string, offset: 0x2fd): __fini_array_end <2fc> DW_AT_name : (indirect string, offset: 0x2ed): __libc_csu_fini <3bb> DW_AT_linkage_name: (indirect string, offset: 0x33d): _init <3bf> DW_AT_name : (indirect string, offset: 0x33d): _init ==after== <27e> DW_AT_name : (indirect string, offset: 0x4b6): __preinit_array_end <286> DW_AT_name : (indirect string, offset: 0x2a5): __init_array_start <28e> DW_AT_name : (indirect string, offset: 0x4ca): __init_array_end <2ab> DW_AT_name : (indirect string, offset: 0x2fd): __fini_array_end <2b4> DW_AT_name : (indirect string, offset: 0x2ed): __libc_csu_fini <34c> DW_AT_linkage_name: (indirect string, offset: 0x33d): _init <350> DW_AT_name : (indirect string, offset: 0x33d): _init So as Florian said, we should ignore sockeraddr decls and check that bbb and ccc are not present after dwz. What about using the following patch? Martin > > Those sockaddr declarations come from this compilation unit: > > Compilation Unit @ offset 0x28: > Length: 0x4d2 (32-bit) > Version: 5 > Unit Type: DW_UT_compile (1) > Abbrev Offset: 0x14 > Pointer Size: 8 > <0><34>: Abbrev Number: 14 (DW_TAG_compile_unit) > <35> DW_AT_producer : (indirect string, offset: 0x1e5): GNU C11 12.1.0 -mtune=generic -march=x8 > 6-64 -g -O2 -std=gnu11 -fgnu89-inline -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protect > ion -fpatchable-function-entry=16,14 -fmerge-all-constants -frounding-math -fstack-protector-strong -fno > -common -fmath-errno -fpie -fcf-protection=full -ftls-model=initial-exec > <39> DW_AT_language : 29 (C11) > <3a> DW_AT_name : (indirect line string, offset: 0x45): ../sysdeps/x86/abi-note.c > <3e> DW_AT_comp_dir : (indirect line string, offset: 0x0): /home/abuild/rpmbuild/BUILD/glibc-2. > 35/csu > <42> DW_AT_stmt_list : 0x5d > > I am not sure why the abi-note would pull in all these sockeraddr declarations. > > Cheers, > > Mark >