From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vk1-xa35.google.com (mail-vk1-xa35.google.com [IPv6:2607:f8b0:4864:20::a35]) by sourceware.org (Postfix) with ESMTPS id CBDA4385840E for ; Wed, 24 Nov 2021 11:12:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CBDA4385840E Received: by mail-vk1-xa35.google.com with SMTP id u68so1227272vke.11 for ; Wed, 24 Nov 2021 03:12:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=F5rgKeUTOhxSjskEUIFVsdPnH/2JmOaA68wiK63sCV0=; b=p59ygXnWxI8xG896K2u8Ag/a295s2WvAq0lpUMpOmyb2v8jA1QqybcmLQ/ZU0fSSRX wD/bUCYIO96cOL6jeDsZpBmeWiCiFSHrJ5vZ5JXxwB+H1II+EnG0n6diewB3mRT4+uyC kmFG6EpqIAn7WS3ezZvpEQxVkTUHzBJSZUlxKpXCtXNFyCNDfuyZtKioEwfqiHCTg93Z tls1BAcvZkwssXTSiKueiUWtobaFSZ6cf96LCsW9gfgqiw5m1XopbFwDuOynzwvWr4Uy lcGrCYdf7Y4OHWjDDHhGEeOpfM/RkuvZlsFfi7HUWj6JWA55tvdplwv3noKRnI5ncet4 OeGw== X-Gm-Message-State: AOAM533Uf9v4+I6P3oW2WPxpCR9whaJFP7Piocx1uw0M0ItfbKqg/0Yo sk4/eQ99IzGcZFQPN0f5P5xj59Dz/BqXq2WinlmielcvqztTZQ== X-Google-Smtp-Source: ABdhPJz/+pZeGKhYsgL1WPn8G0nhYKcBKAfooW/rtUzRCBKZDhW2/+znyuuH3BkxvtDeZ5jauv1dvsgNyDUXaPTpEz8= X-Received: by 2002:a1f:a556:: with SMTP id o83mr25323438vke.9.1637752356134; Wed, 24 Nov 2021 03:12:36 -0800 (PST) MIME-Version: 1.0 References: <20210827185755.953243-1-gprocida@google.com> <20211119150138.2930800-1-gprocida@google.com> <87ilwiu72o.fsf@seketeli.org> In-Reply-To: <87ilwiu72o.fsf@seketeli.org> From: Giuliano Procida Date: Wed, 24 Nov 2021 11:11:59 +0000 Message-ID: Subject: Re: [PATCH v3] Bug 28191 - Interpret DWARF 5 addrx locations To: Dodji Seketeli Cc: libabigail@sourceware.org, kernel-team@android.com, maennich@google.com, mjw@redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-22.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Nov 2021 11:12:38 -0000 Hi Dodji. On Tue, 23 Nov 2021 at 17:15, Dodji Seketeli wrote: > > [I am adding Mark to the list recipients as I am going to ask him a > question below] > Indeed, I forgot to CC him on the patch. Hi Mark. > > Hello, > > Giuliano Procida a =C3=A9crit: > > > This change uses libdw facilities to interpret location expressions > > instead of using libabigail's own mini-interpreter. With the fix for > > elfutils https://sourceware.org/bugzilla/show_bug.cgi?id=3D28220 in > > elfutils-0.186, abidw will correctly interpret Clang DWARF 5 symbol > > addresses. Without that fix many declarations will not be linked to > > their corresponding symbols due to the incorrect interpretation of > > location attribute data. > > > > * src/abg-dwarf-reader.cc (die_location_address): Use > > dwarf_attr_integrate, dwarf_getlocation and > > dwarf_getlocation_attr to decode addreses, instead of > > die_location_expr and eval_last_constant_dwarf_sub_expr. > > * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.= 0.abi: > > Refresh test reference output; two more symbols have types. > > Thanks for looking into that. > > It seems to me that we can also do away with the use of eval_last_constan= t_dwarf_sub_expr from > die_member_offset. Would that work on your testing binaries? > I think I originally wrote the code just before a trip away and didn't have the time to look into the other callers then. > > From what I am seeing, dwarf_getlocation_attr and dwarf_getlocation are > present in elfutils 0.176 which is the oldest version that we need to > support, so we should be able to ditch eval_last_constant_dwarf_sub_expr > and its dependencies altogether. > > Or what am I missing? > I think it would be good if we could rely on elfutils for this functionalit= y. I've had a go at die_member_offset and I think I have it working (at least with the test suite). I'll clean up what I have and post it. There is considerable overlap with the address function. I haven't been able to get die_virtual_function_index to work as dwarf_getlocation_attr fails. There may be a simpler recipe to follow here. If/when the 3 existing callers are working, there may be some code in common to factor out as a new die_location_expr function. Regards, Giuliano. > > [...] > > Cheers, > > -- > Dodji