Re: [RFC PATCH 0/4] add support for gcov format introduced in gcc4.7

From: Peter Oberparleiter
Date: Fri Aug 23 2013 - 11:08:18 EST


On 23.08.2013 10:39, Frantisek Hrbata wrote:
> 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.

It appears that gcc 4.7 support for gcov-kernel is quite important to a
number of people, at least that is what I derive from the fact that I
now know of 3 people who've been working on this support separately from
each other: you, myself (I've been close to posting my own version to
LKML) and Christophe Guillon.

It's apparent now that I made a mistake delaying the discussion of the
effort for too long, but I think your posting the patches opens up a
good opportunity to combine the best of all previous efforts.

Most of your code looks very familiar. There's one feature missing though
that Christophe brought up as a requirement: the ability for gcov-kernel
to cope with kernel modules being compiled with GCC versions implementing
a different gcov format (apparently this can happen in some embedded
setups).

Christophe proposed run-time version checking and a file-ops type function
table which is chosen based on info->version. I found this approach
somewhat intrusive and this would also not have covered the case where a
new GCC versions was used to compile kernel modules for which the base
kernel has no support. I tried to solve this requirement by combining
two changes:

1) make the gcov-format generated by gcov-kernel compile-time configurable
2) separate the gcov-format specific code into a loadable kernel module

This way, the gcov-format specific part of gcov-kernel could be replaced
when working with a different version GCC. I'll post the corresponding
patches as reply in another mail.

Back to your patches: I tested them and they work fine on s390x when
compiled with GCC 4.3.4 and 4.7.2. I'll provide some more specific
comments as replies to your patch-mails.


Regards,
Peter Oberparleiter

--
Peter Oberparleiter
Linux on System z Development - IBM Germany

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/