Re: [PATCH] complete e390f9a port for v4.9.106

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux