Messages in this thread | | | From | Kees Cook <> | Date | Wed, 16 May 2018 23:33:06 -0700 | Subject | Re: [PATCH v4 27/31] kcov: test compiler capability in Kconfig and correct dependency |
| |
On Wed, May 16, 2018 at 11:17 PM, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > As Documentation/kbuild/kconfig-language.txt notes, 'select' should be > be used with care - it forces a lower limit of another symbol, ignoring > the dependency. Currently, KCOV can select GCC_PLUGINS even if arch > does not select HAVE_GCC_PLUGINS. This could cause the unmet direct > dependency. > > Now that Kconfig can test compiler capability, let's handle this in a > more sophisticated way. > > There are two ways to enable KCOV; use the compiler that natively > supports -fsanitize-coverage=trace-pc, or build the SANCOV plugin if > the compiler has ability to build GCC plugins. Hence, the correct > dependency for KCOV is: > > depends on CC_HAS_SANCOV_TRACE_PC || GCC_PLUGINS > > You do not need to build the SANCOV plugin if the compiler already > supports -fsanitize-coverage=trace-pc. Hence, the select should be: > > select GCC_PLUGIN_SANCOV if !CC_HAS_SANCOV_TRACE_PC > > With this, GCC_PLUGIN_SANCOV is selected only when necessary, so > scripts/Makefile.gcc-plugins can be cleaner. > > I also cleaned up Kconfig and scripts/Makefile.kcov as well. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
-Kees
-- Kees Cook Pixel Security
| |