| 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 GCOV_PROFILE_ALL |
| bool "Profile entire Kernel" |
| depends on GCOV_KERNEL |
| depends on SUPERH || S390 || X86 || (PPC && EXPERIMENTAL) || MICROBLAZE || ARM |
| 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. |
| |
| config GCOV_TOOLCHAIN_IS_ANDROID |
| bool "Use Android toolchain ABI for gcov instead of vanilla gcc ABI" |
| default n |
| ---help--- |
| This option must be set if a gcov-enabled kernel is being built with an |
| Android toolchain. The gcov ABI in Android gcc is not compatible with |
| vanilla gcc, and choosing this option incorrectly might lead to kernel |
| panics during boot or when dumping the gcov data. |
| |
| If unsure, say N. |
| |
| config GCOV_CTORS |
| string |
| depends on CONSTRUCTORS |
| default ".init_array" if ARM && AEABI |
| default ".ctors" |
| |
| endmenu |