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 D13003858D1E for ; Mon, 10 Apr 2023 18:45:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D13003858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linuxfoundation.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1F0576122F; Mon, 10 Apr 2023 18:45:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 09E21C433D2; Mon, 10 Apr 2023 18:45:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1681152349; bh=0n4eaHIxt403lbgomlAGAL123JZ2zK8IK+30XDNzj8Y=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=T6r13krDEDJEGWRefoOLT3kEnwfW2FpoNaRNtSbXyPwyPDVpS8vkoJS2IssSSPuIm ZHhVLn7Uj49zY/sThsvBPPJ02qxK7OEBBf42tjAMosD/yWsl6KFbsMie6IliwxlGpY I/0+W+cIrt2AW1Y8RpFV6jlT7X1XRFaS/wy8bAZ8= Date: Mon, 10 Apr 2023 20:45:46 +0200 From: Greg Kroah-Hartman To: Masahiro Yamada Cc: John Moon , Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, Randy Dunlap , Arnd Bergmann , Bjorn Andersson , Todd Kjos , Matthias Maennich , Giuliano Procida , kernel-team@android.com, libabigail@sourceware.org, Jordan Crouse , Trilok Soni , Satya Durga Srinivasu Prabhala , Elliot Berman , Guru Das Srinagesh Subject: Re: [PATCH v5 1/2] check-uapi: Introduce check-uapi.sh Message-ID: <2023041015-lunar-dandelion-1b4e@gregkh> References: <20230407203456.27141-1-quic_johmoo@quicinc.com> <20230407203456.27141-2-quic_johmoo@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-3.6 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 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: On Mon, Apr 10, 2023 at 07:03:05PM +0900, Masahiro Yamada wrote: > On Sat, Apr 8, 2023 at 5:35 AM John Moon wrote: > > > > While the kernel community has been good at maintaining backwards > > compatibility with kernel UAPIs, it would be helpful to have a tool > > to check if a commit introduces changes that break backwards > > compatibility. > > > > To that end, introduce check-uapi.sh: a simple shell script that > > checks for changes to UAPI headers using libabigail. > > > > libabigail is "a framework which aims at helping developers and > > software distributors to spot some ABI-related issues like interface > > incompatibility in ELF shared libraries by performing a static > > analysis of the ELF binaries at hand." > > > > The script uses one of libabigail's tools, "abidiff", to compile the > > changed header before and after the commit to detect any changes. > > > > abidiff "compares the ABI of two shared libraries in ELF format. It > > emits a meaningful report describing the differences between the two > > ABIs." > > > > The script also includes the ability to check the compatibility of > > all UAPI headers across commits. This allows developers to inspect > > the stability of the UAPIs over time. > > > > Signed-off-by: John Moon > > > > BTW, is there anybody (except the submitters) who loves this tool? > (or anybody who has ever evaluated this?) I evaluated the first one, and yes, I do want this, but I haven't tested it out yet, sorry. I get patches for header files all the time and hand-verifying that they don't break the abi is a pain at times > According to this tool, it looks like we broke a lot of UAPI > headers in the previous MW (between v6.2 and v6.3-rc1). That's not ok, and needs to be fixed, otherwise this is useless as no one can rely on it at all. > The script takes some time because it builds many objects > internally. > > However, once this script starts running, you must not hit Ctrl-C. > If you do it, your repository will be sprinkled with a ton > of untracked files. That needs to be unwound and fixed. > CAVEAT > This tool runs 'git checkout' a couple of times internally. > If you interrupt it, your worktree might be messed up. ctrl-c can be properly caught and the git state needs to be restored for this to be able to be accepted. thanks, greg k-h