summaryrefslogtreecommitdiffstats
path: root/usr.bin/gprof
diff options
context:
space:
mode:
authordt <dt@FreeBSD.org>1999-07-03 12:30:04 +0000
committerdt <dt@FreeBSD.org>1999-07-03 12:30:04 +0000
commit70ccb43727168afa1934c8dd3d7b811a4257e883 (patch)
tree0c4397818a2cc5582ad142fc6b2edb46d0df627e /usr.bin/gprof
parent1e1f8ed63c98dbcbe18ab06b77393f4bfdfc3b09 (diff)
downloadFreeBSD-src-70ccb43727168afa1934c8dd3d7b811a4257e883.zip
FreeBSD-src-70ccb43727168afa1934c8dd3d7b811a4257e883.tar.gz
Don't ignore weak symbols.
EGCS assign weak symbols to inline functions it couldn't inline (e.g. virtual inline functions), template functions, etc. Omitting them result in quite bogus profile. Weak symbols created by __weak_reference are not really problem. Caught by: Ilya Segalovich <iseg@comptek.ru>
Diffstat (limited to 'usr.bin/gprof')
-rw-r--r--usr.bin/gprof/elf.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/usr.bin/gprof/elf.c b/usr.bin/gprof/elf.c
index 3a59f53..359d76e 100644
--- a/usr.bin/gprof/elf.c
+++ b/usr.bin/gprof/elf.c
@@ -97,7 +97,6 @@ wantsym(const Elf_Sym *sym, const char *strtab)
bind = ELF_ST_BIND(sym->st_info);
if (type != STT_FUNC ||
- bind == STB_WEAK ||
(aflag && bind == STB_LOCAL) ||
(uflag && strchr(strtab + sym->st_name, '.') != NULL))
return 0;
OpenPOWER on IntegriCloud