summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2018-04-09 17:11:45 +0200
committerTom Rini <trini@konsulko.com>2018-04-13 13:02:50 -0400
commit52ff8020d02f312364ceaf0b1114759d3a1f357b (patch)
tree3e48f7c0d3ee125191388959921ba5b3322f2a35
parentcd5d2742521a7af3512cee40d8917e1eb71c0801 (diff)
kconfig: add CONFIG_CC_COVERAGE
Make it possible to use gcc code coverage analysis. v1 -> v2: - Kconfig: remove not needed 'default n' - Makefile: use consistent spacing Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--.gitignore4
-rw-r--r--Kconfig7
-rw-r--r--Makefile6
3 files changed, 17 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 29757aa51e..f1b801579c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,3 +85,7 @@ GTAGS
*.orig
*~
\#*#
+
+# gcc code coverage files
+*.gcda
+*.gcno
diff --git a/Kconfig b/Kconfig
index 6670913799..67b8c50cbd 100644
--- a/Kconfig
+++ b/Kconfig
@@ -59,6 +59,13 @@ config CC_OPTIMIZE_FOR_SIZE
This option is enabled by default for U-Boot.
+config CC_COVERAGE
+ bool "Enable code coverage analysis"
+ depends on SANDBOX
+ help
+ Enabling this option will pass "--coverage" to gcc to compile
+ and link code instrumented for coverage analysis.
+
config DISTRO_DEFAULTS
bool "Select defaults suitable for booting general purpose Linux distributions"
default y if ARCH_SUNXI || TEGRA
diff --git a/Makefile b/Makefile
index bfe115cf18..9eb7e5bf34 100644
--- a/Makefile
+++ b/Makefile
@@ -725,6 +725,12 @@ else
PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(c_flags) -print-libgcc-file-name`) -lgcc
endif
PLATFORM_LIBS += $(PLATFORM_LIBGCC)
+
+ifdef CONFIG_CC_COVERAGE
+KBUILD_CFLAGS += --coverage
+PLATFORM_LIBGCC += -lgcov
+endif
+
export PLATFORM_LIBS
export PLATFORM_LIBGCC