On Sat, Jun 09, 2018 at 01:42:05PM +0200, Philip Müller wrote: > objtool ports introduced in v4.9.106 were not totally complete. Therefore > they resulted in issues like: > > module: overflow in relocation type 10 val XXXXXXXXXXX > ‘usbcore’ likely not compiled with -mcmodel=kernel > module: overflow in relocation type 10 val XXXXXXXXXXX > ‘scsi_mod’ likely not compiled with -mcmodel=kernel What is causing these messages? What arch and .config? > Missing part was the complete backport of commit e390f9a. Ah, right, I missed those other parts of this commit, good catch. > > Original notes by Josh Poimboeuf: > > The '__unreachable' and '__func_stack_frame_non_standard' sections are > only used at compile time. They're discarded for vmlinux but they > should also be discarded for modules. > > Since this is a recurring pattern, prefix the section names with > ".discard.". It's a nice convention and vmlinux.lds.h already discards > such sections. > > Also remove the 'a' (allocatable) flag from the __unreachable section > since it doesn't make sense for a discarded section. > > Signed-off-by: Philip Müller <philm@xxxxxxxxxxx> > Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead > ends") > Link: https://gitlab.manjaro.org/packages/core/linux49/issues/2 > diff -Npur linux-4.9.106.orig/arch/x86/kernel/vmlinux.lds.S linux-4.9.106/arch/x86/kernel/vmlinux.lds.S > --- linux-4.9.106.orig/arch/x86/kernel/vmlinux.lds.S 2018-06-09 12:43:04.238314000 +0200 > +++ linux-4.9.106/arch/x86/kernel/vmlinux.lds.S 2018-06-09 12:44:39.034361441 +0200 > @@ -352,8 +352,6 @@ SECTIONS > DISCARDS > /DISCARD/ : { > *(.eh_frame) > - *(__func_stack_frame_non_standard) > - *(__unreachable) > } > } > > diff -Npur linux-4.9.106.orig/include/linux/compiler-gcc.h linux-4.9.106/include/linux/compiler-gcc.h > --- linux-4.9.106.orig/include/linux/compiler-gcc.h 2018-06-09 12:43:05.058337000 +0200 > +++ linux-4.9.106/include/linux/compiler-gcc.h 2018-06-09 12:45:35.779367605 +0200 > @@ -206,7 +206,7 @@ > #ifdef CONFIG_STACK_VALIDATION > #define annotate_unreachable() ({ \ > asm("1:\t\n" \ > - ".pushsection __unreachable, \"a\"\t\n" \ > + ".pushsection .discard.unreachable\t\n" \ > ".long 1b\t\n" \ > ".popsection\t\n"); \ > }) What about the fix up to scripts/mod/modpost and module-common.lds? Are they not needed? thanks, greg k-h