Re: 'kbuild' merge before 4.9-rc1 breaks build and boot

Nicholas Piggin
2016-11-08T01:50:27Z

On Mon, 7 Nov 2016 22:39:07 +0100
Peter Wu <peter@lekensteyn.nl> wrote:

> On Mon, Nov 07, 2016 at 02:10:12PM -0500, Vince Weaver wrote:
> > On Thu, 27 Oct 2016, Peter Wu wrote:
> >
> > > I can confirm Olivers issue, the current mainline kernel fails to boot
> > > on kernels with CONFIG_MODVERSIONS=y. Bisection points to:
> > >
> > > commit 784d5699eddc55878627da20d3fe0c8542e2f1a2
> > > Author: Al Viro <viro@zeniv.linux.org.uk>
> > > Date: Mon Jan 11 11:04:34 2016 -0500
> > > > WARNING: "memset" [sound/usb/snd-usbmidi-lib.ko] has no CRC!
> > > > WARNING: "__fentry__" [sound/usb/snd-usbmidi-lib.ko] has no CRC!
> > > > WARNING: "memcpy" [sound/usb/snd-usbmidi-lib.ko] has no CRC!
> > > > WARNING: "__sw_hweight32" [sound/usb/snd-usbmidi-lib.ko] has no CRC!
> >
> > Has any progress been made with this problem?
> >
> > I'm also encountering it on my debian-unstable box on any kernel more
> > recent than 4.9-rc1 (up to and including 4.9-rc4). I am glad someone
> > managed to isolate it as I was unable to get a clean bisect.
> >
> > Vince
>
> The original kbuild issue went in via
> merge commit 84d69848c97faab0c25aa2667b273404d2e2a64a which notes:
>
> - EXPORT_SYMBOL for asm source by Al Viro.
>
> This does bring a regression, because genksyms no longer generates
> checksums for these symbols (CONFIG_MODVERSIONS). Nick Piggin is
> working on a patch to fix this.
>
> Plus, we are talking about functions like strcpy(), which rarely
> change prototypes.
>
> Adding Nicholas in the cc, hopefully he can give a status update.

I think Michal has everything needed now for the kbuild bits. The arch
specific patches can go via arch trees quite easily (there is no hard
dependency either way). This is the kbuild bit:

https://git.kernel.org/cgit/linux/kernel/git/mmarek/kbuild.git/commit/?h=rc-fixes&id=4efca4ed05cbdfd13ec3e8cb623fb77d6e4ab187

And it also needs this incremental bit not in Michal's tree yet:

---
scripts/Makefile.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 3e223c2..05c6bb4 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -332,7 +332,7 @@ cmd_gensymtypes_S = \
(echo "\#include <linux/kernel.h>" ; \
echo "\#include <asm/asm-prototypes.h>" ; \
$(CPP) $(a_flags) $< | \
- grep ^___EXPORT_SYMBOL | \
+ grep ___EXPORT_SYMBOL | \
sed 's/___EXPORT_SYMBOL \([a-zA-Z0-9_]*\),.*/EXPORT_SYMBOL(\1);/' ) | \
$(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \
$(GENKSYMS) $(if $(1), -T $(2)) \
--
2.9.3