 0439280c2f
			
		
	
	0439280c2f
	
	
	
		
			
			Optimized inlining was disabled by default when gcc 4 was still
relatively new. By now, all gcc versions handle this well and there
seems to be no real reason to keep it x86-only.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(backported from 1e8882585c)
(rebased patches)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/arch/x86/Kconfig.debug
 | |
| +++ b/arch/x86/Kconfig.debug
 | |
| @@ -287,20 +287,6 @@ config CPA_DEBUG
 | |
|  	---help---
 | |
|  	  Do change_page_attr() self-tests every 30 seconds.
 | |
|  
 | |
| -config OPTIMIZE_INLINING
 | |
| -	bool "Allow gcc to uninline functions marked 'inline'"
 | |
| -	---help---
 | |
| -	  This option determines if the kernel forces gcc to inline the functions
 | |
| -	  developers have marked 'inline'. Doing so takes away freedom from gcc to
 | |
| -	  do what it thinks is best, which is desirable for the gcc 3.x series of
 | |
| -	  compilers. The gcc 4.x series have a rewritten inlining algorithm and
 | |
| -	  enabling this option will generate a smaller kernel there. Hopefully
 | |
| -	  this algorithm is so good that allowing gcc 4.x and above to make the
 | |
| -	  decision will become the default in the future. Until then this option
 | |
| -	  is there to test gcc for this.
 | |
| -
 | |
| -	  If unsure, say N.
 | |
| -
 | |
|  config DEBUG_ENTRY
 | |
|  	bool "Debug low-level entry code"
 | |
|  	depends on DEBUG_KERNEL
 | |
| --- a/lib/Kconfig.debug
 | |
| +++ b/lib/Kconfig.debug
 | |
| @@ -117,6 +117,20 @@ endmenu # "printk and dmesg options"
 | |
|  
 | |
|  menu "Compile-time checks and compiler options"
 | |
|  
 | |
| +config OPTIMIZE_INLINING
 | |
| +	bool "Allow gcc to uninline functions marked 'inline'"
 | |
| +	---help---
 | |
| +	  This option determines if the kernel forces gcc to inline the functions
 | |
| +	  developers have marked 'inline'. Doing so takes away freedom from gcc to
 | |
| +	  do what it thinks is best, which is desirable for the gcc 3.x series of
 | |
| +	  compilers. The gcc 4.x series have a rewritten inlining algorithm and
 | |
| +	  enabling this option will generate a smaller kernel there. Hopefully
 | |
| +	  this algorithm is so good that allowing gcc 4.x and above to make the
 | |
| +	  decision will become the default in the future. Until then this option
 | |
| +	  is there to test gcc for this.
 | |
| +
 | |
| +	  If unsure, say N.
 | |
| +
 | |
|  config DEBUG_INFO
 | |
|  	bool "Compile the kernel with debug info"
 | |
|  	depends on DEBUG_KERNEL && !COMPILE_TEST
 | |
| --- a/arch/x86/Kconfig
 | |
| +++ b/arch/x86/Kconfig
 | |
| @@ -273,9 +273,6 @@ config ZONE_DMA32
 | |
|  config AUDIT_ARCH
 | |
|  	def_bool y if X86_64
 | |
|  
 | |
| -config ARCH_SUPPORTS_OPTIMIZED_INLINING
 | |
| -	def_bool y
 | |
| -
 | |
|  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 | |
|  	def_bool y
 | |
|  
 | |
| --- a/include/linux/compiler-gcc.h
 | |
| +++ b/include/linux/compiler-gcc.h
 | |
| @@ -89,8 +89,7 @@
 | |
|   * of extern inline functions at link time.
 | |
|   * A lot of inline functions can cause havoc with function tracing.
 | |
|   */
 | |
| -#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) ||		\
 | |
| -    !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
 | |
| +#if !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
 | |
|  #define inline \
 | |
|  	inline __attribute__((always_inline, unused)) notrace __gnu_inline
 | |
|  #else
 |