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

From: Michal Marek
Date: Tue Nov 29 2016 - 11:03:27 EST


Dne 29.11.2016 v 16:27 Linus Torvalds napsal(a):
> On Nov 29, 2016 5:51 AM, "Adam Borowski" <kilobyte@xxxxxxxxxx
> <mailto:kilobyte@xxxxxxxxxx>> wrote:
>>
>
>> >
>> > (a) tested
>>
>> By many people.
>
> No.
>
> I've tested the build *without* this, and it works fine.
>
>> > (b) explains it
>>
>> The actual logic is in 4efca4ed0. It wants C prototypes defined in
>> asm/asm-prototypes.h that lists symbols defined in assembly -- genksyms
>> knows only how to read C code.
>
> See above. I'm not taking more random patches that "fix" this when it's
> not broken for me. Not without very explicit explanations of why that
> patch is still needed for others.

The original and easily observable bug is that were are not generating
symbol checksums for the asm-exported symbols, so they default to 0.
This can be seen e.g. in the Module.symvers file. This seemed like a
minor issue, because with the functions written in asm, the type
checking is rather weak (this has been the case even before Al's
patches). However, there is another bug that with _some_ toolchains /
architectures, the checksums do not default to 0, but they are simply
missing in the ___kcrctab* sections and the module loader complains. We
can of course research into the details of the second bug, but we
already know that we are not generating the checksums while we should be.

Michal