From: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
To: Karol Lewandowski <k.lewandowsk@samsung.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: GCOV doesn't seem to work on ARM with kernel 2.6.35-rc6
Date: Mon, 26 Jul 2010 18:57:50 +0200 [thread overview]
Message-ID: <4C4DBE8E.70102@linux.vnet.ibm.com> (raw)
In-Reply-To: <4C4D6554.30707@samsung.com>
Karol Lewandowski wrote:
> On 07/26/2010 12:32 PM, Karol Lewandowski wrote:
>> I'm trying to use code coverage measurements with mainline Linux kernel
>> 2.6.35-rc6 on ARM platform (specifically on Samsung's S5PC110 board).
>>
>> I've enabled following in my .config:
>>
>> CONFIG_GCOV_KERNEL=y
>> CONFIG_DEBUG_FS=y
>>
>> After successful boot I see no gcov-related files other than
>> /sys/kernel/debug/gcov/reset.
>>
>> From my knowledge (and from my previous experience with out-of-tree
>> gcov patchset) whole directory structure shall be created along with
>> .gcda files and various symlinks.
This expectation is correct.
> I forgot to add that I've added "GCOV_PROFILE := y" to at least
>
> fs/Makefile
> kernel/Makefile
>
> and few others. Thus, I expect to find something more than just
> ./reset file.
I just tested gcov support for 2.6.35-rc6 on s390 and it works without
a problem. My assumption would be that you are using an EABI-GCC to
compile your kernel. Those compilers name their constructor symbols
differently than the vanilla GCC so that the whole constructor calling
mechanism on which the gcov support relies, will fail. If that is
indeed the case, the following testing patch should solve your
problem:
---
include/asm-generic/vmlinux.lds.h | 1 +
kernel/module.c | 6 ++++++
2 files changed, 7 insertions(+)
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -443,6 +443,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
#define KERNEL_CTORS()
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2405,6 +2405,12 @@ static noinline struct module *load_modu
#ifdef CONFIG_CONSTRUCTORS
mod->ctors = section_objs(hdr, sechdrs, secstrings, ".ctors",
sizeof(*mod->ctors), &mod->num_ctors);
+ if (!mod->num_ctors) {
+ /* Could be an EABI compiler. */
+ mod->ctors = section_objs(hdr, sechdrs, secstrings,
+ ".init_array", sizeof(*mod->ctors),
+ &mod->num_ctors);
+ }
#endif
#ifdef CONFIG_TRACEPOINTS
next prev parent reply other threads:[~2010-07-26 16:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-26 10:32 GCOV doesn't seem to work on ARM with kernel 2.6.35-rc6 Karol Lewandowski
2010-07-26 10:37 ` Karol Lewandowski
2010-07-26 16:57 ` Peter Oberparleiter [this message]
2010-07-27 7:35 ` Karol Lewandowski
2010-07-28 13:12 ` Peter Oberparleiter
2010-07-28 13:44 ` Karol Lewandowski
2010-07-28 15:57 ` Peter Oberparleiter
2010-07-29 16:25 ` Karol Lewandowski
2010-08-03 5:20 ` George G. Davis
2010-08-03 9:12 ` Peter Oberparleiter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C4DBE8E.70102@linux.vnet.ibm.com \
--to=oberpar@linux.vnet.ibm.com \
--cc=k.lewandowsk@samsung.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox