diff options
author | dt <dt@FreeBSD.org> | 1999-07-03 12:30:04 +0000 |
---|---|---|
committer | dt <dt@FreeBSD.org> | 1999-07-03 12:30:04 +0000 |
commit | 70ccb43727168afa1934c8dd3d7b811a4257e883 (patch) | |
tree | 0c4397818a2cc5582ad142fc6b2edb46d0df627e /usr.bin/gprof | |
parent | 1e1f8ed63c98dbcbe18ab06b77393f4bfdfc3b09 (diff) | |
download | FreeBSD-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.c | 1 |
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; |