gcov: add support for gcc 4.7 gcov format
authorFrantisek Hrbata <fhrbata@redhat.com>
Tue, 12 Nov 2013 23:11:26 +0000 (15:11 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 19 Mar 2018 18:58:23 +0000 (18:58 +0000)
commitfa2709f45d8c97a9b8bc292662add5ba87253b95
tree6b957e2a7c3eec5eb175708d63448f025ed08a65
parent250b2856ea9d0459e19e65bc6a8101b8932174c0
gcov: add support for gcc 4.7 gcov format

commit 5f41ea0386a53414d688cfcaa321a78310e5f7c1 upstream.

The gcov in-memory format changed in gcc 4.7.  The biggest change, which
requires this special implementation, is that gcov_info no longer contains
array of counters for each counter type for all functions and gcov_fn_info
is not used for mapping of function's counters to these arrays(offset).
Now each gcov_fn_info contans it's counters, which makes things a little
bit easier.

This is heavily based on the previous gcc_3_4.c implementation and patches
provided by Peter Oberparleiter.  Specially the buffer gcda implementation
for iterator.

[akpm@linux-foundation.org: use kmemdup() and kcalloc()]
[oberpar@linux.vnet.ibm.com: gcc_4_7.c needs vmalloc.h]
Signed-off-by: Frantisek Hrbata <fhrbata@redhat.com>
Cc: Jan Stancek <jstancek@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Reviewed-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Andy Gospodarek <agospoda@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
kernel/gcov/base.c
kernel/gcov/gcc_4_7.c [new file with mode: 0644]