mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	CONFIG_GCOV_FORMAT_AUTODETECT compiles either gcc_3_4.c or gcc_4_7.c according to your GCC version. We can achieve the equivalent behavior by setting reasonable dependency with the knowledge of the compiler version. If GCC older than 4.7 is used, GCOV_FORMAT_3_4 is the default, but users are still allowed to select GCOV_FORMAT_4_7 in case the newer format is back-ported. On the other hand, If GCC 4.7 or newer is used, there is no reason to use GCOV_FORMAT_3_4, so it should be hidden. If you downgrade the compiler to GCC 4.7 or older, oldconfig/syncconfig will display a prompt for the choice because GCOV_FORMAT_3_4 becomes visible as a new symbol. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Reviewed-by: Kees Cook <keescook@chromium.org>
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
menu "GCOV-based kernel profiling"
 | 
						|
 | 
						|
config GCOV_KERNEL
 | 
						|
	bool "Enable gcov-based kernel profiling"
 | 
						|
	depends on DEBUG_FS
 | 
						|
	select CONSTRUCTORS if !UML
 | 
						|
	default n
 | 
						|
	---help---
 | 
						|
	This option enables gcov-based code profiling (e.g. for code coverage
 | 
						|
	measurements).
 | 
						|
 | 
						|
	If unsure, say N.
 | 
						|
 | 
						|
	Additionally specify CONFIG_GCOV_PROFILE_ALL=y to get profiling data
 | 
						|
	for the entire kernel. To enable profiling for specific files or
 | 
						|
	directories, add a line similar to the following to the respective
 | 
						|
	Makefile:
 | 
						|
 | 
						|
	For a single file (e.g. main.o):
 | 
						|
	        GCOV_PROFILE_main.o := y
 | 
						|
 | 
						|
	For all files in one directory:
 | 
						|
	        GCOV_PROFILE := y
 | 
						|
 | 
						|
	To exclude files from being profiled even when CONFIG_GCOV_PROFILE_ALL
 | 
						|
	is specified, use:
 | 
						|
 | 
						|
	        GCOV_PROFILE_main.o := n
 | 
						|
	and:
 | 
						|
	        GCOV_PROFILE := n
 | 
						|
 | 
						|
	Note that the debugfs filesystem has to be mounted to access
 | 
						|
	profiling data.
 | 
						|
 | 
						|
config ARCH_HAS_GCOV_PROFILE_ALL
 | 
						|
	def_bool n
 | 
						|
 | 
						|
config GCOV_PROFILE_ALL
 | 
						|
	bool "Profile entire Kernel"
 | 
						|
	depends on !COMPILE_TEST
 | 
						|
	depends on GCOV_KERNEL
 | 
						|
	depends on ARCH_HAS_GCOV_PROFILE_ALL
 | 
						|
	default n
 | 
						|
	---help---
 | 
						|
	This options activates profiling for the entire kernel.
 | 
						|
 | 
						|
	If unsure, say N.
 | 
						|
 | 
						|
	Note that a kernel compiled with profiling flags will be significantly
 | 
						|
	larger and run slower. Also be sure to exclude files from profiling
 | 
						|
	which are not linked to the kernel image to prevent linker errors.
 | 
						|
 | 
						|
choice
 | 
						|
	prompt "Specify GCOV format"
 | 
						|
	depends on GCOV_KERNEL
 | 
						|
	---help---
 | 
						|
	The gcov format is usually determined by the GCC version, and the
 | 
						|
	default is chosen according to your GCC version. However, there are
 | 
						|
	exceptions where format changes are integrated in lower-version GCCs.
 | 
						|
	In such a case, change this option to adjust the format used in the
 | 
						|
	kernel accordingly.
 | 
						|
 | 
						|
config GCOV_FORMAT_3_4
 | 
						|
	bool "GCC 3.4 format"
 | 
						|
	depends on CC_IS_GCC && GCC_VERSION < 40700
 | 
						|
	---help---
 | 
						|
	Select this option to use the format defined by GCC 3.4.
 | 
						|
 | 
						|
config GCOV_FORMAT_4_7
 | 
						|
	bool "GCC 4.7 format"
 | 
						|
	---help---
 | 
						|
	Select this option to use the format defined by GCC 4.7.
 | 
						|
 | 
						|
endchoice
 | 
						|
 | 
						|
endmenu
 |