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
