Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm

Stanislav Kozina
2016-12-01T11:33:47Z

On 12/01/2016 12:09 PM, Nicholas Piggin wrote:
> On Thu, 1 Dec 2016 11:48:09 +0100
> Stanislav Kozina <skozina@redhat.com> 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. And
the problem with modversions is that it pulls in just everything which
gets (accidentally?) #included in the source file.
The actual ABI maintenance is a different problem, but there are many
possible approaches, the _v2 suffix being one of them.

Regards,
-Stanislav