# 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
	depends on !CC_IS_CLANG || CLANG_VERSION >= 110000
	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.

endmenu
