From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay11.mail.gandi.net (relay11.mail.gandi.net [217.70.178.231]) by sourceware.org (Postfix) with ESMTPS id 1666B3861020 for ; Mon, 20 Jul 2020 14:27:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1666B3861020 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=dodji@seketeli.org Received: from localhost (91-166-131-130.subs.proxad.net [91.166.131.130]) (Authenticated sender: dodji@seketeli.org) by relay11.mail.gandi.net (Postfix) with ESMTPSA id CF1B1100006; Mon, 20 Jul 2020 14:27:19 +0000 (UTC) Received: by localhost (Postfix, from userid 1000) id 7892A1800938; Mon, 20 Jul 2020 16:27:17 +0200 (CEST) From: Dodji Seketeli To: Matthias Maennich Cc: libabigail@sourceware.org, gprocida@google.com, kernel-team@android.com Subject: Re: [PATCH v2 00/21] Refactor (k)symtab reader Organization: Me, myself and I References: <20200619214305.562-1-maennich@google.com> <20200703164651.1510825-1-maennich@google.com> X-Operating-System: Red Hat Enterprise Linux Workstation 7.8 Beta X-URL: http://www.seketeli.net/~dodji Date: Mon, 20 Jul 2020 16:27:17 +0200 In-Reply-To: <20200703164651.1510825-1-maennich@google.com> (Matthias Maennich's message of "Fri, 3 Jul 2020 18:46:30 +0200") Message-ID: <875zaii7ne.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Mon, 20 Jul 2020 14:27:27 -0000 Hello, Matthias Maennich a =C3=A9crit: > The current implementation that reads the symtab and the ksymtab has grown > over time from simple symtab reading to way more complex ksymtab reading > including taking care of little details like position relative relocation= s, > symbol namespaces, etc. Yet, more features are coming to the Linux kernel= s that > make this parsing even more tricky: Further changes to the ksymtab layout= and > different needs to lookup symbols caused by features like LTO (causing RE= LA > relocations in the ksymtab entries) and CFI (causing additional jump table > symbols) that are highly confusing the meaning of ksymtab entries and mak= e it > increasingly challenging for a static analysis tool like libabigail to pr= operly > process the ksymtab values. > > This added complexity also adds more and more responsibilities to the > read_context that already has a lot of different tasks to juggle. It gets > increasingly difficult to ensure, further development in the dwarf reader= can > be done without subtly regressing existing functionality. Agreed. >From my point of view, even independently from the kernel symbol table reading requirement, I think we need to separate the ELF reading/handling and the DWARF handling to make the code base more future-proof and capable of handling things that we may face in the future like supporting of other debuginfo formats or, who knows, other binary formats. I thus welcome changes that move us into that direction. Thank you for looking into this. This is a big code drop so if you don't mind, I'll be reviewing this in "rounds", going over a subset of patches multiple times, discussing different aspects at once. [...] Cheers, --=20 Dodji