gcc-plugins/stackleak: Provide verbose mode
authorKees Cook <keescook@chromium.org>
Sun, 6 Feb 2022 17:20:08 +0000 (09:20 -0800)
committerKees Cook <keescook@chromium.org>
Sun, 6 Feb 2022 18:49:57 +0000 (10:49 -0800)
In order to compare instrumentation between builds, make the verbose
mode of the plugin available during the build. This is rarely needed
(behind EXPERT) and very noisy (disabled for COMPILE_TEST).

Cc: Alexander Popov <alex.popov@linux.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
scripts/Makefile.gcc-plugins
security/Kconfig.hardening

index 1d16ca1..f67153b 100644 (file)
@@ -37,6 +37,8 @@ gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK)              \
                += -fplugin-arg-stackleak_plugin-track-min-size=$(CONFIG_STACKLEAK_TRACK_MIN_SIZE)
 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK)               \
                += -fplugin-arg-stackleak_plugin-arch=$(SRCARCH)
+gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEAK_VERBOSE)       \
+               += -fplugin-arg-stackleak_plugin-verbose
 ifdef CONFIG_GCC_PLUGIN_STACKLEAK
     DISABLE_STACKLEAK_PLUGIN += -fplugin-arg-stackleak_plugin-disable
 endif
index d051f8c..ded4d7c 100644 (file)
@@ -174,6 +174,16 @@ config GCC_PLUGIN_STACKLEAK
           * https://grsecurity.net/
           * https://pax.grsecurity.net/
 
+config GCC_PLUGIN_STACKLEAK_VERBOSE
+       bool "Report stack depth analysis instrumentation" if EXPERT
+       depends on GCC_PLUGIN_STACKLEAK
+       depends on !COMPILE_TEST        # too noisy
+       help
+         This option will cause a warning to be printed each time the
+         stackleak plugin finds a function it thinks needs to be
+         instrumented. This is useful for comparing coverage between
+         builds.
+
 config STACKLEAK_TRACK_MIN_SIZE
        int "Minimum stack frame size of functions tracked by STACKLEAK"
        default 100