summaryrefslogtreecommitdiff
path: root/usr/src/tools/ctf
diff options
context:
space:
mode:
authordmick <none@none>2005-08-26 17:29:52 -0700
committerdmick <none@none>2005-08-26 17:29:52 -0700
commit89518a1cfe5021ecf5ad8d04c40f53cf947e95d9 (patch)
treeb859132fde3267cd8363bef3c8e6e1a9b72255b4 /usr/src/tools/ctf
parent817a6df8b3316f1bd1c398f765f71964d8966da4 (diff)
downloadillumos-joyent-89518a1cfe5021ecf5ad8d04c40f53cf947e95d9.tar.gz
6241314 ctfconvert should understand SPARC real types in DWARF
6313293 ctfstabs is confused by gcc's output 6268862 add more gcc support routines to a few places 6272005 gcc and cmd/mdb don't get along 6273966 gcc and common/dis don't get along --HG-- rename : usr/src/cmd/mdb/intel/ia32/libstand/muldiv.s => deleted_files/usr/src/cmd/mdb/intel/ia32/libstand/muldiv.s rename : usr/src/cmd/mdb/intel/ia32/libstand/sys/archsalib.h => deleted_files/usr/src/cmd/mdb/intel/ia32/libstand/sys/archsalib.h
Diffstat (limited to 'usr/src/tools/ctf')
-rw-r--r--usr/src/tools/ctf/cvt/dwarf.c4
-rw-r--r--usr/src/tools/ctf/stabs/common/genassym.c15
2 files changed, 17 insertions, 2 deletions
diff --git a/usr/src/tools/ctf/cvt/dwarf.c b/usr/src/tools/ctf/cvt/dwarf.c
index 03b8fb498c..5766066929 100644
--- a/usr/src/tools/ctf/cvt/dwarf.c
+++ b/usr/src/tools/ctf/cvt/dwarf.c
@@ -1285,7 +1285,11 @@ typedef struct fp_size_map {
static const fp_size_map_t fp_encodings[] = {
{ { 4, 4 }, { CTF_FP_SINGLE, CTF_FP_CPLX, CTF_FP_IMAGRY } },
{ { 8, 8 }, { CTF_FP_DOUBLE, CTF_FP_DCPLX, CTF_FP_DIMAGRY } },
+#ifdef __sparc
+ { { 16, 16 }, { CTF_FP_LDOUBLE, CTF_FP_LDCPLX, CTF_FP_LDIMAGRY } },
+#else
{ { 12, 16 }, { CTF_FP_LDOUBLE, CTF_FP_LDCPLX, CTF_FP_LDIMAGRY } },
+#endif
{ { 0, 0 } }
};
diff --git a/usr/src/tools/ctf/stabs/common/genassym.c b/usr/src/tools/ctf/stabs/common/genassym.c
index a7d37f454c..ed10446b00 100644
--- a/usr/src/tools/ctf/stabs/common/genassym.c
+++ b/usr/src/tools/ctf/stabs/common/genassym.c
@@ -20,7 +20,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -317,10 +317,21 @@ ga_process_line(char *line)
(void) fprintf(out, "%s\n", line + 1);
}
return (1);
+
} else if (line[0] == '#') {
+ /*
+ * This is a comment of some sort; is it a line number
+ * comment? Those look like '# 53 "filename.c"'. GCC
+ * sometimes inserts them and removes all other vertical
+ * whitespace, so they should be treated as a "type
+ * terminator" like a blank line is.
+ */
+ if (isdigit(line[2])) {
+ /* line number, terminate type */
+ curtype = -1;
+ }
return (1);
}
-
if (curtype == -1)
return ((curtype = ga_process_name(line)));
else