diff options
author | dim <dim@FreeBSD.org> | 2013-04-01 21:16:32 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2013-04-01 21:16:32 +0000 |
commit | ed915076293cab2b0ece9d485877ec9edb7f564e (patch) | |
tree | 36fc060a78eabc97af0bfbd6ae04ab78faace8e0 /cddl/contrib/opensolaris/tools/ctf/cvt/input.c | |
parent | 171d3554bea8bdebbcb7c09f2537de73c570c729 (diff) | |
download | FreeBSD-src-ed915076293cab2b0ece9d485877ec9edb7f564e.zip FreeBSD-src-ed915076293cab2b0ece9d485877ec9edb7f564e.tar.gz |
Follow up to r247960 and rr247960 by also amending ctfmerge. For the
only other case where STT_FILE symbols are used, in symit_next() in
cddl/contrib/opensolaris/tools/ctf/cvt/input.c, save the basename of the
symbol, instead of the full pathname.
Reported by: avg
Tested by: avg, jimharris
MFC after: 1 week
Diffstat (limited to 'cddl/contrib/opensolaris/tools/ctf/cvt/input.c')
-rw-r--r-- | cddl/contrib/opensolaris/tools/ctf/cvt/input.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/cddl/contrib/opensolaris/tools/ctf/cvt/input.c b/cddl/contrib/opensolaris/tools/ctf/cvt/input.c index 67ebde7..2400942 100644 --- a/cddl/contrib/opensolaris/tools/ctf/cvt/input.c +++ b/cddl/contrib/opensolaris/tools/ctf/cvt/input.c @@ -387,6 +387,7 @@ GElf_Sym * symit_next(symit_data_t *si, int type) { GElf_Sym sym; + char *bname; int check_sym = (type == STT_OBJECT || type == STT_FUNC); for (; si->si_next < si->si_nument; si->si_next++) { @@ -394,8 +395,10 @@ symit_next(symit_data_t *si, int type) gelf_getsym(si->si_symd, si->si_next, &sym); si->si_curname = (caddr_t)si->si_strd->d_buf + sym.st_name; - if (GELF_ST_TYPE(sym.st_info) == STT_FILE) - si->si_curfile = si->si_curname; + if (GELF_ST_TYPE(sym.st_info) == STT_FILE) { + bname = strrchr(si->si_curname, '/'); + si->si_curfile = bname == NULL ? si->si_curname : bname + 1; + } if (GELF_ST_TYPE(sym.st_info) != type || sym.st_shndx == SHN_UNDEF) |