# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # comment "Toolchain Library Support" config LIB_BUILTIN bool config LIB_COMPILER_RT bool choice prompt "Builtin toolchain support" default BUILTIN_TOOLCHAIN ---help--- Select the builtin library config BUILTIN_COMPILER_RT bool "Builtin LLVM libclang_rt.builtins" depends on ARCH_TOOLCHAIN_GNU select LIB_BUILTIN select LIB_COMPILER_RT ---help--- Compile the LLVM Compiler-rt library into the OS. config BUILTIN_TOOLCHAIN bool "Link toolchain builtin library to the OS" endchoice choice prompt "Code coverage analysis support" default COVERAGE_NONE ---help--- Select the code coverage analysis library config COVERAGE_COMPILER_RT bool "Builtin libclang_rt.profile" depends on ARCH_TOOLCHAIN_CLANG select LIB_BUILTIN select LIB_COMPILER_RT ---help--- Compile the LLVM Compiler-rt library into the OS. Support adding native rich compilation options "-fprofile-xxx" config COVERAGE_MINI bool "Builtin code coverage analysis mini library" select LIB_BUILTIN ---help--- This is a mini version of the library, which is used for code coverage analysis. If the toolchain is clang, only support the compilation option "-fprofile-instr-generate -fcoverage-mapping" config COVERAGE_TOOLCHAIN bool "Link toolchain gcov library to the OS" depends on ARCH_TOOLCHAIN_GCC depends on HAVE_CXXINITIALIZE ---help--- Link the toolchain coverage library to the OS. config COVERAGE_NONE bool "Disable coverage function" endchoice config COVERAGE_GCOV_DUMP_REBOOT bool "Dump gcov data on reboot" default n ---help--- Dump gcov data on reboot, this will cause the gcov data to be dumped to the default path when the system is rebooted. config COVERAGE_DEFAULT_PREFIX_STRIP string "Default gcov dump path prefix strip" default "0" ---help--- The default prefix strip of the gcov data config COVERAGE_DEFAULT_PREFIX string "Default gcov dump path prefix" default "/data" ---help--- The default prefix to store the gcov data choice prompt "Builtin profile support" default PROFILE_NONE ---help--- Select the profile library config PROFILE_MINI bool "Enable mini gprof profiling" select LIB_BUILTIN ---help--- Enable gprof profiling support. This will cause the compiler to generate additional code to support profiling. This will also cause the linker to include the gmon.out file in the final executable. Add the "-pg" parameter to the Makefile when compiling to obtain the function call graph of the specified module. If you do this, please enable "CONFIG_FRAME_POINTER" config PROFILE_NONE bool "None profile support" endchoice config COVERAGE_ALL bool "Enable code coverage for all module" depends on !COVERAGE_NONE default n ---help--- Enable code coverage for all code, it will instrument all code, which will cause a large performance penalty for the code. If use GCC, it will add the '-fprofile-generate -ftest-coverage' parameter to all module. If use Clang, it will add the '-fprofile-instr-generate -fcoverage-mapping' parameter to all module. The data can then be printed nsh run "gcov dump -d /xxx/xxx" config PROFILE_ALL bool "Enable gprof call graph for all modules" depends on FRAME_POINTER && !PROFILE_NONE default n ---help--- Enable gprof profiling for all code, it will instrument all code, which will cause a large performance penalty for the code. You can add the '-pg' parameter to the specified module in the makefile to only analyze the content of the module. config LIB_COMPILER_RT_VERSION string "Select LLVM Compiler-rt version" depends on LIB_COMPILER_RT default "17.0.1" config LIB_COMPILER_RT_HAS_BFLOAT16 bool "Enable support for bfloat16 in Compiler-rt" depends on LIB_COMPILER_RT default n