[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f7c5d50d-8930-7ab1-62bb-8a5d0aead988@suse.com>
Date: Tue, 13 Dec 2016 23:51:00 +0100
From: Michal Marek <mmarek@...e.com>
To: Dodji Seketeli <dodji@...eteli.org>,
Nicholas Piggin <npiggin@...il.com>
Cc: Ian Campbell <ijc@...lion.org.uk>,
Ben Hutchings <ben@...adent.org.uk>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Adam Borowski <kilobyte@...band.pl>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Debian kernel maintainers <debian-kernel@...ts.debian.org>,
"linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>,
Arnd Bergmann <arnd@...db.de>, Ingo Molnar <mingo@...nel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from
asm
Dne 9.12.2016 v 23:46 Dodji Seketeli napsal(a):
> Hello,
>
> Nicholas Piggin <npiggin@...il.com> a écrit:
>
> [...]
>
>> That said, a dwarf based checker tool should be able to do as good a job
>> (maybe a bit better because report is very informative and it may pick up
>> compiler alignments or padding options).
>
> So, Nicholas was kind enough to send me the two Linux Kernel binaries
> that he built with the tiny little interface change that we were
> discussing earlier. Here is what the abidiff[1] tools says about that
> interface change:
>
> $ time ~/git/libabigail/kabidiff/build/tools/abidiff vmlinux.abi1.abi vmlinux.abi2.abi
> Functions changes summary: 0 Removed, 1 Changed, 0 Added function
> Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>
> 1 function with some indirect sub-type change:
>
> [C]'function int foo(blah*)' at memory.c:82:1 has some indirect sub-type changes:
> parameter 1 of type 'blah*' has sub-type changes:
> in pointed to type 'struct blah' at memory.c:78:1:
> type size changed from 32 to 64 bits
> 1 data member insertion:
> 'int blah::y', at offset 0 (in bits) at memory.c:79:1
> 1 data member change:
> 'int blah::x' offset changed from 0 to 32 (in bits) (by +32 bits)
For completeness, with a foo.symref file in the tree, genksyms would print
foo.c: warning: foo: modversion changed because of changes in struct blah
So there is some sort of diagnostics already. Does the abidiff tool
handle the case when an exported symbol is moved between .c files? This
is always a mess with genksyms, because the two .c files have different
includes and thus the type expansion stops at different points. So
typically the move needs to be reverted as a workaround.
Michal
Powered by blists - more mailing lists