This is an attempt to bring support for modified gcov format in gcc 4.7 to
the kernel. It tries to leverage the existing layout/abstraction, which was
designed keeping in mind that the gcov format could change, but some
changes had
to be make. Mostly because the current model does not take into account
that
even the core gcov structures, like gcov_info, could change. One part that
could
be problematic is the addition of the .init_array section for constructors.
Tested with lcov and seems to be working fine, giving similar results as
for the
older format.
Frantisek Hrbata (4):
gcov: move gcov structs definitions to a gcc version specific file
gcov: add support for gcc 4.7 gcov format
gcov: compile specific gcov implementation based on gcc version
kernel: add support for init_array constructors
include/asm-generic/vmlinux.lds.h | 1 +
include/linux/module.h | 2 +
kernel/gcov/Makefile | 5 +-
kernel/gcov/base.c | 32 +-
kernel/gcov/fs.c | 27 +-
kernel/gcov/gcc_3_4.c | 115 +++++++
kernel/gcov/gcc_4_7.c | 612
++++++++++++++++++++++++++++++++++++++
kernel/gcov/gcov.h | 65 +---
kernel/module.c | 6 +
9 files changed, 784 insertions(+), 81 deletions(-)
create mode 100644 kernel/gcov/gcc_4_7.c
--
1.8.3.1