Module Name:    src
Committed By:   darran
Date:           Tue Mar  2 20:49:18 UTC 2010

Modified Files:
        src/share/mk: bsd.lib.mk bsd.own.mk bsd.prog.mk bsd.sys.mk sys.mk

Log Message:
DTrace: Add CTF generation to the make framework.  Only enabled when
MKDTRACE=yes.


To generate a diff of this commit:
cvs rdiff -u -r1.304 -r1.305 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.619 -r1.620 src/share/mk/bsd.own.mk
cvs rdiff -u -r1.246 -r1.247 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.189 -r1.190 src/share/mk/bsd.sys.mk
cvs rdiff -u -r1.99 -r1.100 src/share/mk/sys.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/mk/bsd.lib.mk
diff -u src/share/mk/bsd.lib.mk:1.304 src/share/mk/bsd.lib.mk:1.305
--- src/share/mk/bsd.lib.mk:1.304	Mon Feb 22 12:33:22 2010
+++ src/share/mk/bsd.lib.mk	Tue Mar  2 20:49:18 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.lib.mk,v 1.304 2010/02/22 12:33:22 njoly Exp $
+#	$NetBSD: bsd.lib.mk,v 1.305 2010/03/02 20:49:18 darran Exp $
 #	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
@@ -216,9 +216,18 @@
 AFLAGS+=	${COPTS}
 FFLAGS+=	${FOPTS}
 
+.if defined(CTFCONVERT)
+.if defined(CFLAGS) && !empty(CFLAGS:M*-g*)
+CTFFLAGS+=	-g
+.endif
+.endif
+
 .c.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .if !defined(CFLAGS) || empty(CFLAGS:M*-g*)
 	${OBJCOPY} -x ${.TARGET}
 .endif
@@ -226,6 +235,9 @@
 .c.po:
 	${_MKTARGET_COMPILE}
 	${COMPILE.c} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .if !defined(CFLAGS) || empty(CFLAGS:M*-g*)
 	${OBJCOPY} -X ${.TARGET}
 .endif
@@ -269,6 +281,9 @@
 .f.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.f} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .if !defined(FOPTS) || empty(FOPTS:M*-g*)
 	${OBJCOPY} -x ${.TARGET}
 .endif
@@ -276,6 +291,9 @@
 .f.po:
 	${_MKTARGET_COMPILE}
 	${COMPILE.f} ${PROFFLAGS} -pg ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .if !defined(FOPTS) || empty(FOPTS:M*-g*)
 	${OBJCOPY} -X ${.TARGET}
 .endif
@@ -298,6 +316,9 @@
 .m.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.m} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*)
 	${OBJCOPY} -x ${.TARGET}
 .endif
@@ -305,6 +326,9 @@
 .m.po:
 	${_MKTARGET_COMPILE}
 	${COMPILE.m} ${PROFFLAGS} -pg ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*)
 	${OBJCOPY} -X ${.TARGET}
 .endif
@@ -326,21 +350,33 @@
 .s.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 	${OBJCOPY} -x ${.TARGET}
 
 .S.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 	${OBJCOPY} -x ${.TARGET}
 
 .s.po:
 	${_MKTARGET_COMPILE}
 	${COMPILE.s} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 	${OBJCOPY} -X ${.TARGET}
 
 .S.po:
 	${_MKTARGET_COMPILE}
 	${COMPILE.S} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 	${OBJCOPY} -X ${.TARGET}
 
 .s.go:

Index: src/share/mk/bsd.own.mk
diff -u src/share/mk/bsd.own.mk:1.619 src/share/mk/bsd.own.mk:1.620
--- src/share/mk/bsd.own.mk:1.619	Sat Feb 27 22:42:54 2010
+++ src/share/mk/bsd.own.mk	Tue Mar  2 20:49:18 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.own.mk,v 1.619 2010/02/27 22:42:54 haad Exp $
+#	$NetBSD: bsd.own.mk,v 1.620 2010/03/02 20:49:18 darran Exp $
 
 # This needs to be before bsd.init.mk
 .if defined(BSD_MK_COMPAT_FILE)
@@ -236,6 +236,8 @@
 TOOL_CONFIG=		${TOOLDIR}/bin/${_TOOL_PREFIX}config
 TOOL_CRUNCHGEN=		MAKE=${.MAKE:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}crunchgen
 TOOL_CTAGS=		${TOOLDIR}/bin/${_TOOL_PREFIX}ctags
+TOOL_CTFCONVERT=	${TOOLDIR}/bin/${_TOOL_PREFIX}ctfconvert
+TOOL_CTFMERGE=		${TOOLDIR}/bin/${_TOOL_PREFIX}ctfmerge
 TOOL_DB=		${TOOLDIR}/bin/${_TOOL_PREFIX}db
 TOOL_DISKLABEL=		${TOOLDIR}/bin/nbdisklabel-${MAKEWRAPPERMACHINE}
 TOOL_EQN=		${TOOLDIR}/bin/${_TOOL_PREFIX}eqn
@@ -311,6 +313,8 @@
 TOOL_CONFIG=		config
 TOOL_CRUNCHGEN=		crunchgen
 TOOL_CTAGS=		ctags
+TOOL_CTFCONVERT=	ctfconvert
+TOOL_CTFMERGE=		ctfmerge
 TOOL_DB=		db
 TOOL_DISKLABEL=		disklabel
 TOOL_EQN=		eqn

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.246 src/share/mk/bsd.prog.mk:1.247
--- src/share/mk/bsd.prog.mk:1.246	Mon Dec 14 08:51:16 2009
+++ src/share/mk/bsd.prog.mk	Tue Mar  2 20:49:18 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.246 2009/12/14 08:51:16 mrg Exp $
+#	$NetBSD: bsd.prog.mk,v 1.247 2010/03/02 20:49:18 darran Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -63,6 +63,12 @@
 OBJCFLAGS+=	${OBJCOPTS}
 MKDEP_SUFFIXES?=	.o .ln
 
+# CTF preserve debug symbols
+.if defined(MKDTRACE) && (${MKDTRACE} != "no") && (${CFLAGS:M-g} != "")
+CTFFLAGS+= -g
+CTFMFLAGS+= -g
+.endif
+
 # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o
 .if ${OBJECT_FMT} == "ELF"
 .ifndef LIBCRTBEGIN
@@ -299,6 +305,9 @@
 	    ${OBJS.${_P}} ${_LDADD.${_P}} \
 	    ${DESTDIR:D-L${_GCC_LIBGCCDIR}} \
 	    ${_PROGLDOPTS}
+.if defined(CTFMERGE)
+	${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}}
+.endif
 .if defined(PAXCTL_FLAGS.${_P})
 	${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET}
 .endif

Index: src/share/mk/bsd.sys.mk
diff -u src/share/mk/bsd.sys.mk:1.189 src/share/mk/bsd.sys.mk:1.190
--- src/share/mk/bsd.sys.mk:1.189	Tue Dec 15 04:03:55 2009
+++ src/share/mk/bsd.sys.mk	Tue Mar  2 20:49:18 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.sys.mk,v 1.189 2009/12/15 04:03:55 mrg Exp $
+#	$NetBSD: bsd.sys.mk,v 1.190 2010/03/02 20:49:18 darran Exp $
 #
 # Build definitions used for NetBSD source tree builds.
 
@@ -154,6 +154,9 @@
 .c.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 
 .c.ln:
 	${_MKTARGET_COMPILE}
@@ -173,6 +176,9 @@
 .m.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.m} ${OBJCOPTS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 
 # Host-compiled C objects
 # The intermediate step is necessary for Sun CC, which objects to calling
@@ -192,10 +198,16 @@
 .s.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 
 .S.o:
 	${_MKTARGET_COMPILE}
 	${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 
 # Lex
 LFLAGS+=	${LPREFIX.${.IMPSRC:T}:D-P${LPREFIX.${.IMPSRC:T}}}

Index: src/share/mk/sys.mk
diff -u src/share/mk/sys.mk:1.99 src/share/mk/sys.mk:1.100
--- src/share/mk/sys.mk:1.99	Sun Sep  7 15:54:52 2008
+++ src/share/mk/sys.mk	Tue Mar  2 20:49:18 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: sys.mk,v 1.99 2008/09/07 15:54:52 kent Exp $
+#	$NetBSD: sys.mk,v 1.100 2010/03/02 20:49:18 darran Exp $
 #	@(#)sys.mk	8.2 (Berkeley) 3/21/94
 
 unix?=		We run NetBSD.
@@ -48,6 +48,22 @@
 COMPILE.c?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
 LINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
 
+# C Type Format data is required for DTrace
+# XXX TBD VERSION is not defined
+CTFFLAGS	?=	-L VERSION
+CTFMFLAGS	?=	-t -L VERSION
+
+.if defined(MKDTRACE) && ${MKDTRACE} != "no"
+CTFCONVERT	?=	${TOOL_CTFCONVERT}
+CTFMERGE	?=	${TOOL_CTFMERGE}
+.if defined(CFLAGS) && (${CFLAGS:M-g} != "")
+CTFFLAGS	+=	-g
+CTFMFLAGS	+=	-g
+.else
+CFLAGS		+=	-g
+.endif
+.endif
+
 CXX?=		c++
 CXXFLAGS?=	${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-Wno-pointer-sign:N-ffreestanding:N-std=gnu99}
 
@@ -113,8 +129,14 @@
 # C
 .c:
 	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .c.o:
 	${COMPILE.c} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .c.a:
 	${COMPILE.c} ${.IMPSRC}
 	${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
@@ -146,8 +168,14 @@
 
 .F:
 	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .F.o:
 	${COMPILE.F} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .F.a:
 	${COMPILE.F} ${.IMPSRC}
 	${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
@@ -165,8 +193,14 @@
 # Pascal
 .p:
 	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .p.o:
 	${COMPILE.p} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .p.a:
 	${COMPILE.p} ${.IMPSRC}
 	${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
@@ -175,16 +209,28 @@
 # Assembly
 .s:
 	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .s.o:
 	${COMPILE.s} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .s.a:
 	${COMPILE.s} ${.IMPSRC}
 	${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
 	rm -f ${.PREFIX}.o
 .S:
 	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .S.o:
 	${COMPILE.S} ${.IMPSRC}
+.if defined(CTFCONVERT)
+	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.endif
 .S.a:
 	${COMPILE.S} ${.IMPSRC}
 	${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o

Reply via email to