Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758582AbcLAMkE (ORCPT ); Thu, 1 Dec 2016 07:40:04 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:34442 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758451AbcLAMj7 (ORCPT ); Thu, 1 Dec 2016 07:39:59 -0500 Date: Thu, 1 Dec 2016 23:39:42 +1100 From: Nicholas Piggin To: Stanislav Kozina Cc: Don Zickus , Linus Torvalds , Ben Hutchings , Michal Marek , Adam Borowski , Greg Kroah-Hartman , Linux Kbuild mailing list , Debian kernel maintainers , "linux-arch@vger.kernel.org" , Arnd Bergmann , Ingo Molnar , Linux Kernel Mailing List Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm Message-ID: <20161201233942.0453b759@roar.ozlabs.ibm.com> In-Reply-To: References: <20161129131922.GA31466@angband.pl> <20161129135118.24696-1-kilobyte@angband.pl> <30bb2db4-47bd-0c35-8328-ef032b551f06@suse.com> <20161129195721.GI2697@decadent.org.uk> <20161201051852.28dc335f@roar.ozlabs.ibm.com> <20161201041325.GX35881@redhat.com> <830d2864-ab52-27c8-8178-ec86f3267079@redhat.com> <20161201220907.60375b4f@roar.ozlabs.ibm.com> Organization: IBM X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2139 Lines: 56 On Thu, 1 Dec 2016 12:33:02 +0100 Stanislav Kozina wrote: > On 12/01/2016 12:09 PM, Nicholas Piggin wrote: > > On Thu, 1 Dec 2016 11:48:09 +0100 > > Stanislav Kozina wrote: > > > >> On 12/01/2016 05:13 AM, Don Zickus wrote: > >> > >> ... > >> > >>> I think GregKH pointed to one such tool, libabigail? We are working on > >>> others too. > >> I should mention one of the others here: > >> https://github.com/skozina/kabi-dw > >> > >> It's quite comparable to libabigail in the way it works, the main > >> differences are: > >> - written in pure C > >> - depends only on elf-utils and flex/yacc > >> - it's much simpler (4k LOC) > >> - stores the type information in the text files and compares those > >> instead of directly comparing two sets of DWARF data > > Now this seems much better for distro ABI checking. > > > > The next question is, do they need any kernel support for rare cases > > where they do have to break the ABI of an export? Simple rename of the > > function with a _v2 postfix might be enough. We could retain some per > > symbol versioning in the kernel if needed, but how much would it > > actually help? > > The biggest pain point AFAICT is to identify what types (functions, > structs, enums, ...) should be considered a part of the stable ABI. Sure. This is something an automated checker can't solve completely. Any changes would have to be considered in terms of their impact to the ABI. It's not just data but also instruction changes involved. This is policy that should not be mandated by the kernel. Which is why I'm in favor of using tools like this and just providing mechanism so distros can implement their own polices. > And > the problem with modversions is that it pulls in just everything which > gets (accidentally?) #included in the source file. I think that's SRCVERSION which is something else. But modversions has problems too. > The actual ABI maintenance is a different problem, but there are many > possible approaches, the _v2 suffix being one of them. Would be good to get a consensus on that too. Thanks, Nick