The patch titled Subject: gcov: docs: add a note on GCC vs Clang differences has been added to the -mm tree. Its filename is gcov-docs-add-a-note-on-gcc-vs-clang-differences.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/gcov-docs-add-a-note-on-gcc-vs-clang-differences.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/gcov-docs-add-a-note-on-gcc-vs-clang-differences.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Tri Vo <trong@xxxxxxxxxxx> Subject: gcov: docs: add a note on GCC vs Clang differences Document some things of note to gcov users: 1. GCC gcov and Clang llvm-cov tools are not compatible. 2. The use of GCC vs Clang is transparent at build-time. Also adjust the documentation to account for the removal of config symbol CONFIG_GCOV_FORMAT_AUTODETECT by commit 6a61b70b43c9 ("gcov: remove CONFIG_GCOV_FORMAT_AUTODETECT"). Link: http://lkml.kernel.org/r/20190318025411.98014-4-trong@xxxxxxxxxxx Signed-off-by: Tri Vo <trong@xxxxxxxxxxx> Reviewed-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx> Cc: Daniel Mentz <danielmentz@xxxxxxxxxx> Cc: Greg Hackmann <ghackmann@xxxxxxxxxxx> Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Cc: Petri Gynther <pgynther@xxxxxxxxxx> Cc: Prasad Sodagudi <psodagud@xxxxxxxxxxx> Cc: Trilok Soni <tsoni@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- Documentation/dev-tools/gcov.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) --- a/Documentation/dev-tools/gcov.rst~gcov-docs-add-a-note-on-gcc-vs-clang-differences +++ a/Documentation/dev-tools/gcov.rst @@ -34,10 +34,6 @@ Configure the kernel with:: CONFIG_DEBUG_FS=y CONFIG_GCOV_KERNEL=y -select the gcc's gcov format, default is autodetect based on gcc version:: - - CONFIG_GCOV_FORMAT_AUTODETECT=y - and to get coverage data for the entire kernel:: CONFIG_GCOV_PROFILE_ALL=y @@ -169,6 +165,20 @@ b) gcov is run on the BUILD machine [user@build] gcov -o /tmp/coverage/tmp/out/init main.c +Note on compilers +----------------- + +GCC and LLVM gcov tools are not necessarily compatible. Use gcov_ to work with +GCC-generated .gcno and .gcda files, and use llvm-cov_ for Clang. + +.. _gcov: http://gcc.gnu.org/onlinedocs/gcc/Gcov.html +.. _llvm-cov: https://llvm.org/docs/CommandGuide/llvm-cov.html + +Build differences between GCC and Clang gcov are handled by Kconfig. It +automatically selects the appropriate gcov format depending on the detected +toolchain. + + Troubleshooting --------------- _ Patches currently in -mm which might be from trong@xxxxxxxxxxx are gcov-docs-add-a-note-on-gcc-vs-clang-differences.patch