kernel profiling with kernbb and gcov
Mark W. Krentel
krentel at dreamscape.com
Tue Sep 7 19:21:13 PDT 2004
I'm trying to do kernel profiling with kernbb(8) and gcov(1), but
I can't get the kernel compile to accept the -ftest-coverage and
-fprofile-arcs options.
(1) Is it --test-coverage or -ftest-coverage, or does it matter?
kernbb(8) says the former, gcov(1) says the latter.
(2) How do I add these options to the kernel compile? I tried adding
them to COPTFLAGS in make.conf, and all the individual files compile
ok, but when it tries to link them, it dies with a bazillion undefined
references.
ffsl.o(.text+0x7e): In function `global constructors keyed to ffsl_GCOV':
: undefined reference to `__gcov_init'
ffsl.o(.data+0x44): undefined reference to `__gcov_merge_add'
flsl.o(.text+0x7e): In function `global constructors keyed to flsl_GCOV':
: undefined reference to `__gcov_init'
flsl.o(.data+0x44): undefined reference to `__gcov_merge_add'
I can run "gcc -ftest-coverage -fprofile-arcs hello.c" for the "Hello,
world" program, and it works and gcov(1) is happy, but I can't get
these options into the kernel.
(3) How do I selectively add these options to just some of the source
files? Do I run config (or "config -p") and hand edit the Makefile,
before "make depend && make"?
This is in 6.0-CURRENT as of a few days ago.
Thanks,
--Mark
More information about the freebsd-hackers
mailing list