From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 4F19E3858010 for ; Thu, 30 Jun 2022 20:05:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4F19E3858010 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from reform (deer0x0e.wildebeest.org [172.31.17.144]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id B602830146AC; Thu, 30 Jun 2022 22:05:53 +0200 (CEST) Received: by reform (Postfix, from userid 1000) id D502C2E83390; Thu, 30 Jun 2022 22:05:52 +0200 (CEST) Date: Thu, 30 Jun 2022 22:05:52 +0200 From: Mark Wielaard To: Martin =?utf-8?B?TGnFoWth?= Cc: dwz@sourceware.org, Tom de Vries Subject: Re: =?utf-8?B?4pi6IEJ1aWxkYm8=?= =?utf-8?Q?t?= (GNU Toolchain): dwz - build successful (master) Message-ID: References: <20220625215613.349A43851AA8@sourceware.org> <8f2e7627-8084-1148-363f-6ac3b71b87f4@suse.cz> <9b8016f2-b9f4-b310-4a73-692f70e32799@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <9b8016f2-b9f4-b310-4a73-692f70e32799@suse.cz> X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: dwz@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Dwz mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jun 2022 20:05:58 -0000 Hi Martin, On Thu, Jun 30, 2022 at 04:23:02PM +0200, Martin Liška wrote: > On 6/28/22 23:43, Mark Wielaard wrote: > > 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? That fails on my local debian-arm64 setup. Because bbb and ccc were the only DW_AT_declarations in the original binary. $ readelf -wi odr-struct-ns | grep -3 DW_AT_declaration | grep name <7c> DW_AT_name : bbb <14b> DW_AT_name : ccc So readelf -wi 1 | grep -3 DW_AT_declaration > decls fails because the grep fails So I think that should also be a passing condition (no decls left). It would be good to make sure they were there at the start though. Cheers, Mark