Thread (87 messages) 87 messages, 17 authors, 2016-12-15

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

From: Michal Marek <hidden>
Date: 2016-12-01 16:12:48
Also in: linux-kbuild, lkml

Possibly related (same subject, not in this thread)

On 2016-12-01 04:39, Nicholas Piggin wrote:
On Thu, 01 Dec 2016 02:35:54 +0000
Ben Hutchings [off-list ref] wrote:
quoted
As I understand it, genksyms incorporates the definitions of a
function's parameter and return types - not just their names - and all
the types they refer to, recursively.  So a structure size change
should change the version of all functions where the function and its
caller pass that structure between them, however indirectly.  It finds
such indirect ABI breakage for me fairly regularly, though of course I
don't know that it finds everything.
It is only the type name.

Not only that but even if you did extend it further to structure type
arrangement then you still have to deal with other structures followed
via pointers. Or (rarer but not unheard of):

- changes to structures without changes of the types of their members
- changes to arguments without changes of their type
This is already covered by genksyms. Try make V=1 with
CONFIG_MODVERSIONS=y and add the -D option to one of the genksyms
command. I wanted to paste the expanded signature for
register_filesystem() as an example, but vger would probably drop the
mail for being too big :).

- changes to semantics of functions
- data structures derived in ways other than exported symbols, e.g.,
  fixed register for `current` on some archs
Right, this is something that genksyms has no idea about.

Michal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help