svn commit: r248284 - stable/9/cddl/contrib/opensolaris/tools/ctf/cvt
Dimitry Andric
dim at FreeBSD.org
Thu Mar 14 21:18:19 UTC 2013
Author: dim
Date: Thu Mar 14 21:18:19 2013
New Revision: 248284
URL: http://svnweb.freebsd.org/changeset/base/248284
Log:
MFC r247960:
Make ctfconvert work correctly on clang-compiled object files. Clang
puts the full original source filename in the STT_FILE entry of the ELF
symbol table, while gcc saves only the basename.
Since the DWARF DW_AT_name attribute contains the full source filename,
both for clang and gcc, ctfconvert takes just the basename of it, for
matching with the STT_FILE entry. So when attempting to match with such
an entry, use its basename, if necessary.
Reported by: avg
MFC r247962:
Fix error in r247960: actually assign the basename to match.iim_file.
Pointed out by: avg
Pointy hat to: dim
Modified:
stable/9/cddl/contrib/opensolaris/tools/ctf/cvt/output.c
Directory Properties:
stable/9/cddl/ (props changed)
stable/9/cddl/contrib/opensolaris/ (props changed)
Modified: stable/9/cddl/contrib/opensolaris/tools/ctf/cvt/output.c
==============================================================================
--- stable/9/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Thu Mar 14 20:31:39 2013 (r248283)
+++ stable/9/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Thu Mar 14 21:18:19 2013 (r248284)
@@ -363,6 +363,7 @@ sort_iidescs(Elf *elf, const char *file,
for (i = 0; i < nent; i++) {
GElf_Sym sym;
+ char *bname;
iidesc_t **tolist;
GElf_Sym ssym;
iidesc_match_t smatch;
@@ -377,7 +378,8 @@ sort_iidescs(Elf *elf, const char *file,
switch (GELF_ST_TYPE(sym.st_info)) {
case STT_FILE:
- match.iim_file = match.iim_name;
+ bname = strrchr(match.iim_name, '/');
+ match.iim_file = bname == NULL ? match.iim_name : bname + 1;
continue;
case STT_OBJECT:
tolist = iiburst->iib_objts;
More information about the svn-src-stable-9
mailing list