# SPDX-License-Identifier: GPL-2.0-only
menu "GCOV-based kernel profiling"

config GCOV_KERNEL
	bool "Enable gcov-based kernel profiling"
	depends on DEBUG_FS
	select CONSTRUCTORS
	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
	depends on CC_IS_GCC
	---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 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
