This patch series adds Clang supoprt for gcov. Patch 1 refactors existing code in preparation for Clang support. Patch 2 implements necessary LLVM runtime hooks and gcov kernel interfaces. Patch 3 updates documentation.
Greg Hackmann (2): gcov: Clang: move common GCC code into gcc_base.c gcov: Clang support Tri Vo (1): gcov: docs: add a note on GCC vs Clang differences Documentation/dev-tools/gcov.rst | 18 +- kernel/gcov/Kconfig | 3 +- kernel/gcov/Makefile | 5 +- kernel/gcov/base.c | 84 +---- kernel/gcov/clang.c | 555 +++++++++++++++++++++++++++++++ kernel/gcov/gcc_base.c | 86 +++++ kernel/gcov/gcov.h | 3 + 7 files changed, 665 insertions(+), 89 deletions(-) create mode 100644 kernel/gcov/clang.c create mode 100644 kernel/gcov/gcc_base.c v2: - Reorganized config dependencies, as per Masahiro. v3: - Squashed patches 2-4 of v2, as per Nick, Masahiro, and Peter. Addressed comments by Peter: - Moved __gcov_exit() to gcc_base.c - Added missing header to gcc_base.c - Removed unnecessary boundary checks in gcov_info_add(). - Changed counters' allocation to use vmalloc(). - Added check for failed allocation of filename. - Changed list_for_each_entry_safe to list_for_each_entry when traversing without modifying. - Updated Documentation/dev-tools/gcov.rst -- 2.20.1.321.g9e740568ce-goog