lkml.org 
[lkml]   [2008]   [Jun]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/6] gcov kernel support
On Wed, 11 Jun 2008 14:59:54 +0200
Peter Oberparleiter <peter.oberparleiter@de.ibm.com> wrote:

> Andrew Morton wrote:
> > On Mon, 09 Jun 2008 15:49:16 +0200 Peter Oberparleiter <peter.oberparleiter@de.ibm.com> wrote:
> >
> >> Andrew Morton wrote:
> >> > On Mon, 02 Jun 2008 15:33:51 +0200 Peter Oberparleiter <peter.oberparleiter@de.ibm.com> wrote:
> >> >
> >> >> This is version #3 of the gcov kernel support patch set
> >> >
> >> > My build tree is now filled with dead symlinks, like
> >> >
> >> > lrwxrwxrwx 1 akpm akpm 64 Jun 9 00:06 security/selinux/nlmsgtab.gcda -> /sys/kernel/debug/gcov/usr/src/25/security/selinux/nlmsgtab.gcda
> >>
> >> Unfortunately a necessary evil of this approach: symlinks are created
> >> for all compiled source files while link targets are only available when
> >> the corresponding code is executed. In other words: those links will be
> >> dead for source files which don't compile to actual code and for modules
> >> as long as they are not loaded.
> >
> > It doesn't seem awfully useful. I don't run kernels on my build
> > machines and I'm sure many are in the same situation. So gcov is going
> > to need a way of locating these files on the *target* machine. And
> > once that is available, there is no need to add all these symlinks into
> > the build directory.
>
> I don't see any other feasibly way to do it if we want the kernel to
> work out-of-the-box with gcov. If the kernel was a user-space
> application, gcc/libgcov would create the .gcda files in exactly the
> same place where the symbolic links are now.
>
> If we removed those symlinks, users would have to manually copy files
> from /sys on the test machine to the correct position in /objtree on the
> build machine before being able to get any kind of result. This would
> IMO reduce the usefulness of the gcov kernel infrastructure noticeably
> (though gcov-wrappers such as lcov could be modified to hide the
> additional effort).

gcov needs both the .gcda files and the source tree available to do its
work, I assume.

So a sensible scenario would be to copy the entire build tree,
including the .gcda symlinks over to the target system, yes?
tar+scp+untar?

If so, it'd be good to get that tested and documented...

> How about a CONFIG_GCOV_PROFILE_SYMLINKS configuration option?

What use would that be?

> >> > Which causes (at least)
> >> >
> >> > ctags: Warning: cannot open source file "security/selinux/ss/conditional.gcda" : No such file or directory
> >> > ctags: Warning: cannot open source file "security/selinux/netlink.gcda" : No such file or directory
> >> > ctags: Warning: cannot open source file "security/selinux/netlabel.gcda" : No such file or directory
> >>
> >> > and probably other thing which I haven't discovered yet.
>
> I would argue that any mechanism that tries to access all files in
> /objtree regardless of filename extension is brave at best, if not
> broken.

Well, these things happen. You'll probably need to add these to .gitignore.

<does Samsummoning dance>


\
 
 \ /
  Last update: 2008-06-11 22:27    [W:0.056 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site