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

From: Michal Marek
Date: Thu Nov 24 2016 - 04:25:14 EST


On 2016-11-24 05:40, Ingo Molnar wrote:
>
> * Adam Borowski <kilobyte@xxxxxxxxxx> wrote:
>
>> Commit 4efca4ed ("kbuild: modversions for EXPORT_SYMBOL() for asm") adds
>> modversion support for symbols exported from asm files. Architectures
>> must include C-style declarations for those symbols in asm/asm-prototypes.h
>> in order for them to be versioned.
>>
>> Add these declarations for x86, and an architecture-independent file that
>> can be used for common symbols.
>>
>> User impact: kernels may fail to load modules at all when
>> CONFIG_MODVERSIONS=y.
>>
>> Signed-off-by: Adam Borowski <kilobyte@xxxxxxxxxx>
>> Tested-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
>> Acked-by: Nicholas Piggin <npiggin@xxxxxxxxx>
>> Tested-by: Peter Wu <peter@xxxxxxxxxxxxx>
>> Tested-by: Oliver Hartkopp <socketcan@xxxxxxxxxxxx>
>> ---
>> Changes: corrected Peter Wu's address, added Tested-by: Oliver.
>> This is an unsplit version (x86/include/ and include/ together).
>>
>> arch/x86/include/asm/asm-prototypes.h | 12 ++++++++++++
>> include/asm-generic/asm-prototypes.h | 7 +++++++
>> 2 files changed, 19 insertions(+)
>> create mode 100644 arch/x86/include/asm/asm-prototypes.h
>> create mode 100644 include/asm-generic/asm-prototypes.h
>
> Michal, I'm quite unhappy about how the offending commit that broke modversions
> for essentially _everyone_ who does more complex modular builds on x86 ended up
> upstream:
>
> commit 4efca4ed05cbdfd13ec3e8cb623fb77d6e4ab187
> Author: Nicholas Piggin <npiggin@xxxxxxxxx>
> AuthorDate: Tue Nov 1 12:46:19 2016 +1100
> Commit: Michal Marek <mmarek@xxxxxxxx>
> CommitDate: Tue Nov 1 16:20:17 2016 +0100
>
> kbuild: modversions for EXPORT_SYMBOL() for asm
>
> Allow architectures to create asm/asm-prototypes.h file that
> provides C prototypes for exported asm functions, which enables
> proper CRC versions to be generated for them.
>
> scripts/Makefile.build | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
> 1 file changed, 72 insertions(+), 6 deletions(-)
>
> It was applied 4 hours after it was sent in the -rc3 timeframe, and then it went
> upstream in -rc5:
>
> "Here are some regression fixes for kbuild:
>
> - modversion support for exported asm symbols (Nick Piggin). The
> affected architectures need separate patches adding
> asm-prototypes.h.
>
> ... the fine merge log even says that the commit 'needs separate patches'!

It needs separate patches to finally fix the regression that happened in
-rc1.

Michal