From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by sourceware.org (Postfix) with ESMTPS id 23AA6385840E for ; Tue, 5 Dec 2023 15:47:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 23AA6385840E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kernel.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 23AA6385840E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=139.178.84.217 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701791286; cv=none; b=kH/2y1sCI7mdJhALfTqyV/63Ac6qPWsllooc3lKvvaEg6vNsEpeX0PQ0RGPCKWAlJZKTWREEEGXMxGB9iV+Bvf2+Km14zGya0DMIB388XODN6JWAwsVCqxGntFL6FMyno9X+WSpBkXg60PEfkMkuS5FxnMbz56inLE7T4Rmrh4g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701791286; c=relaxed/simple; bh=HQq4YGog+LOH3kxdXhMLmgEr/xV5hXgAGelnepfH6Q4=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=b9+gYrSpY35rH0U6z+m+zDltVtRhc+Xjy47U6/6xEFq5hU9wXV4a+kIXcTwR0pD5wfvZ/3/LHR05VtZBzOLzx+d3Wy0WzP/giODKeLKkiLjYvKgwCh/2duFELeYRBqYsPV0EmwuI+7SKH2d8YNoIT14L2Fy1soz9yPCmRS/HhLw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id AA50E617E1; Tue, 5 Dec 2023 15:47:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2CA42C433C8; Tue, 5 Dec 2023 15:47:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701791275; bh=HQq4YGog+LOH3kxdXhMLmgEr/xV5hXgAGelnepfH6Q4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ikldycaTJMvvsSTXgk1fWETOTwYxL+/MipNQXE9EZx4xFgH85QH1XtFuw7MWQYj8j BrsebEcglYeoHzz5ARhhY8i/FHwzB41JNo/NIFlSKpIJ+sz6Y7bBwlajyQx8D8KuwB lIXOEcvcg9cBR3ieWR7dtv6Z9ICb/iutlg6d6+E8xKYnwhlPMJ2dSWgazhdcwi662h d5JFjOffWWZwge0G+4g8XRxvvWsOhuhpj7/mObUrBGl9uyVPIqL/WkPwkjPBmfq/1j OuHOLsTajBs62qxrNmiqySlDpubXLnAIL037B03kkJ28lKkhi6yNzLC5HQvuKhV8le rUXmoZSPoiGGQ== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 6F50940094; Tue, 5 Dec 2023 12:47:52 -0300 (-03) Date: Tue, 5 Dec 2023 12:47:52 -0300 From: Arnaldo Carvalho de Melo To: Dimitri John Ledkov Cc: dwarves@vger.kernel.org, elfutils-devel@sourceware.org, mark@klomp.org Subject: Re: Porting pahole from dwarf_next_unit() to dwarf_get_units() Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Url: http://acmel.wordpress.com X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Em Tue, Dec 05, 2023 at 01:03:01PM +0000, Dimitri John Ledkov escreveu: > Currently pahole warns and does nothing upon hitting > DW_TAG_skeleton_unit as implemented at > https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=0135ccd632796ab3aff65b7c99b374c4682c2bcf > > In elfutils, a while back a new API got added that aids with discovery > and processing of such tags - > https://sourceware.org/git/?p=elfutils.git;a=commitdiff;h=79f0e623dcde4b042bb72f636a2211d67d5c0ade > > It seems to me if pahole is ported from using dwarf_next_unit() to > instead use dwarf_get_units() native support can be added for > split-dwarf (dwo) files. That would be awesome! > I am trying to write such a port, but it is proving to be very > difficult. I did some work on supporting split-dwarf months ago, but got sidetracked with other work, BTF related and then the code bitrotted, I have to go back looking at it to swap back the details into my brain: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/log/?h=alt_dwarf The patches after: 45c044860c2abce7 dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel Are the ones to suport alt dwarf. > I am entirely unfamiliar with neither pahole nor libdw nor > the dwarf file format. Thus it is very confusing when both pahole and > dwarf library use very similar type names and structs. For example > libdw has struct Dwarf_CU and pahole has unrelated dwarf_cu struct. > What are the differences between dwarf_nextcu(), dwarf_next_unit(), > dwarf_get_units() and when should one use each one of them? (or nest > them?) > Is a port of https://git.kernel.org/pub/scm/devel/pahole/pahole.git/tree/dwarf_loader.c?id=0135ccd632796ab3aff65b7c99b374c4682c2bcf > to use dwarf_get_units() a right approach and would be welcomed? Yes, we need to support DWARF5 fully. > Is anyone else interested in providing any help, or guidance? I'm interested, and I think if Mark could help it would be great as well. - ARnaldo