tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Add MKCTF



Hi,

I'm adding a new build variable MKCTF, which
was discussed on the chat some days ago.

Currently CTF tools are built and used to generate
and manipulate CTF data of ELF binaries when
we build with MKDTRACE=yes. Unfortunately,
current CTF tools don't work on i386/amd64/arm,
and that adds a burden to try DTrace by users.

The new variable is intended to separate CTF
stuffs from MKDTRACE; we can build DTrace
solely without worrying about the CTF issues.
Fortunately, CTF data are not used yet by
current DTrace of NetBSD, so DTrace still
works without CTF data.

Once CTF issues are solved, we would be
able to merge MKCTF to MKDTRACE again
but it would not come soon. So I think the
workaround is still useful at this point.

My patch is attached and also available at
http://www.netbsd.org/~ozaki-r/MKCTF.diff .

This is the diffstat of the patch:
$ diffstat MKCTF.diff
 distrib/sets/lists/comp/mi           |    6 +++---
 distrib/sets/lists/man/mi            |   18 +++++++++---------
 etc/Makefile.params                  |    2 +-
 external/cddl/Makefile               |    2 +-
 external/cddl/osnet/lib/Makefile     |    2 ++
 external/cddl/osnet/usr.bin/Makefile |    2 +-
 share/man/man5/mk.conf.5             |    7 +++++++
 share/mk/bsd.README                  |    5 +++++
 share/mk/bsd.own.mk                  |    4 ++--
 share/mk/bsd.prog.mk                 |    2 +-
 tools/Makefile                       |    2 ++
 11 files changed, 34 insertions(+), 18 deletions(-)

Any comments and suggestions are welcome.

Best regards,
  ozaki-r
Index: distrib/sets/lists/comp/mi
===================================================================
RCS file: /cvs/cvsroot/src/distrib/sets/lists/comp/mi,v
retrieving revision 1.1885
diff -u -r1.1885 mi
--- distrib/sets/lists/comp/mi  22 Mar 2014 11:24:35 -0000      1.1885
+++ distrib/sets/lists/comp/mi  24 Mar 2014 09:43:41 -0000
@@ -20,9 +20,9 @@
 ./usr/bin/config                               comp-util-bin
 ./usr/bin/crunchgen                            comp-c-bin
 ./usr/bin/crunchide                            comp-c-bin
-./usr/bin/ctfconvert                           comp-util-bin           dtrace
-./usr/bin/ctfdump                              comp-util-bin           dtrace
-./usr/bin/ctfmerge                             comp-util-bin           dtrace
+./usr/bin/ctfconvert                           comp-util-bin           ctf
+./usr/bin/ctfdump                              comp-util-bin           ctf
+./usr/bin/ctfmerge                             comp-util-bin           ctf
 ./usr/bin/cvs                                  comp-cvs-bin            cvs
 ./usr/bin/cvsbug                               comp-cvs-bin            cvs
 ./usr/bin/elfedit                              comp-util-bin           binutils
Index: distrib/sets/lists/man/mi
===================================================================
RCS file: /cvs/cvsroot/src/distrib/sets/lists/man/mi,v
retrieving revision 1.1465
diff -u -r1.1465 mi
--- distrib/sets/lists/man/mi   19 Mar 2014 15:26:41 -0000      1.1465
+++ distrib/sets/lists/man/mi   24 Mar 2014 09:43:43 -0000
@@ -125,9 +125,9 @@
 ./usr/share/man/cat1/csh.0                     man-util-catman         .cat
 ./usr/share/man/cat1/csplit.0                  man-util-catman         .cat
 ./usr/share/man/cat1/ctags.0                   man-c-catman            .cat
-./usr/share/man/cat1/ctfconvert.0              man-util-catman         
.cat,dtrace
-./usr/share/man/cat1/ctfdump.0                 man-util-catman         
.cat,dtrace
-./usr/share/man/cat1/ctfmerge.0                        man-util-catman         
.cat,dtrace
+./usr/share/man/cat1/ctfconvert.0              man-util-catman         .cat,ctf
+./usr/share/man/cat1/ctfdump.0                 man-util-catman         .cat,ctf
+./usr/share/man/cat1/ctfmerge.0                        man-util-catman         
.cat,ctf
 ./usr/share/man/cat1/cu.0                      man-util-catman         .cat
 ./usr/share/man/cat1/cut.0                     man-util-catman         .cat
 ./usr/share/man/cat1/daicctl.0                 man-sysutil-catman      .cat
@@ -3240,9 +3240,9 @@
 ./usr/share/man/html1/csh.html                 man-util-htmlman        html
 ./usr/share/man/html1/csplit.html              man-util-htmlman        html
 ./usr/share/man/html1/ctags.html               man-c-htmlman           html
-./usr/share/man/html1/ctfconvert.html          man-util-htmlman        
html,dtrace
-./usr/share/man/html1/ctfdump.html             man-util-htmlman        
html,dtrace
-./usr/share/man/html1/ctfmerge.html            man-util-htmlman        
html,dtrace
+./usr/share/man/html1/ctfconvert.html          man-util-htmlman        html,ctf
+./usr/share/man/html1/ctfdump.html             man-util-htmlman        html,ctf
+./usr/share/man/html1/ctfmerge.html            man-util-htmlman        html,ctf
 ./usr/share/man/html1/cu.html                  man-util-htmlman        html
 ./usr/share/man/html1/cut.html                 man-util-htmlman        html
 ./usr/share/man/html1/daicctl.html             man-sysutil-htmlman     html
@@ -5963,9 +5963,9 @@
 ./usr/share/man/man1/csh.1                     man-util-man            .man
 ./usr/share/man/man1/csplit.1                  man-util-man            .man
 ./usr/share/man/man1/ctags.1                   man-c-man               .man
-./usr/share/man/man1/ctfconvert.1              man-util-man            
.man,dtrace
-./usr/share/man/man1/ctfdump.1                 man-util-man            
.man,dtrace
-./usr/share/man/man1/ctfmerge.1                        man-util-man            
.man,dtrace
+./usr/share/man/man1/ctfconvert.1              man-util-man            .man,ctf
+./usr/share/man/man1/ctfdump.1                 man-util-man            .man,ctf
+./usr/share/man/man1/ctfmerge.1                        man-util-man            
.man,ctf
 ./usr/share/man/man1/cu.1                      man-util-man            .man
 ./usr/share/man/man1/cut.1                     man-util-man            .man
 ./usr/share/man/man1/daicctl.1                 man-sysutil-man         .man
Index: etc/Makefile.params
===================================================================
RCS file: /cvs/cvsroot/src/etc/Makefile.params,v
retrieving revision 1.10
diff -u -r1.10 Makefile.params
--- etc/Makefile.params 26 Jan 2014 17:33:53 -0000      1.10
+++ etc/Makefile.params 24 Mar 2014 09:43:43 -0000
@@ -44,7 +44,7 @@
                MACHINE MACHINE_ARCH MAKE MAKECONF MAKEFLAGS \
                MAKEOBJDIR MAKEOBJDIRPREFIX MAKEVERBOSE \
                MKARZERO MKATF MKBFD MKBINUTILS MKCATPAGES \
-               MKCRYPTO MKCRYPTO_RC5 MKCVS \
+               MKCRYPTO MKCRYPTO_RC5 MKCTF MKCVS \
                MKDEBUG MKDEBUGLIB MKDOC MKDTRACE MKDYNAMICROOT \
                MKGCC MKGCCCMDS MKGDB \
                MKHESIOD MKHTML MKIEEEFP MKINET6 MKINFO MKIPFILTER \
Index: external/cddl/Makefile
===================================================================
RCS file: /cvs/cvsroot/src/external/cddl/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- external/cddl/Makefile      25 Feb 2010 00:14:10 -0000      1.2
+++ external/cddl/Makefile      24 Mar 2014 09:43:54 -0000
@@ -3,7 +3,7 @@
 
 # We need more modular flag e.g. we can add dtrace to osnet later
 
-.if ( ${MKZFS} != "no" || ${MKDTRACE} != "no" )
+.if ( ${MKZFS} != "no" || ${MKDTRACE} != "no" || ${MKCTF} != "no")
 SUBDIR+= osnet
 .endif
 
Index: external/cddl/osnet/lib/Makefile
===================================================================
RCS file: /cvs/cvsroot/src/external/cddl/osnet/lib/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- external/cddl/osnet/lib/Makefile    11 Sep 2013 23:04:10 -0000      1.5
+++ external/cddl/osnet/lib/Makefile    24 Mar 2014 09:43:54 -0000
@@ -6,6 +6,8 @@
 
 .if (defined(MKDTRACE) && ${MKDTRACE} != "no")
 SUBDIR+=       libdtrace
+.endif
+.if ${MKDTRACE:Uno} != "no" || ${MKCTF:Uno} != "no"
 SUBDIR+=       libctf
 .endif
 
Index: external/cddl/osnet/usr.bin/Makefile
===================================================================
RCS file: /cvs/cvsroot/src/external/cddl/osnet/usr.bin/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- external/cddl/osnet/usr.bin/Makefile        21 Feb 2010 01:46:36 -0000      
1.2
+++ external/cddl/osnet/usr.bin/Makefile        24 Mar 2014 09:43:54 -0000
@@ -2,7 +2,7 @@
 
 .include <bsd.own.mk>
 
-.if ${MKDTRACE} != "no"
+.if ${MKCTF} != "no"
 SUBDIR+=       ctfconvert ctfmerge ctfdump
 .endif
 
Index: share/man/man5/mk.conf.5
===================================================================
RCS file: /cvs/cvsroot/src/share/man/man5/mk.conf.5,v
retrieving revision 1.67
diff -u -r1.67 mk.conf.5
--- share/man/man5/mk.conf.5    2 Jun 2013 11:02:40 -0000       1.67
+++ share/man/man5/mk.conf.5    24 Mar 2014 09:44:14 -0000
@@ -325,6 +325,13 @@
 .In complex.h .
 .DFLTy
 .
+.It Sy MKCTF
+.YorN
+Indicates whether CTF tools are to be built and installed.
+If yes, the tools will be used to generate and manipulate
+CTF data of ELF binaries during build.
+.DFLTn
+.
 .It Sy MKCRYPTO
 .YorN
 Indicates whether cryptographic code will be included in a build;
Index: share/mk/bsd.README
===================================================================
RCS file: /cvs/cvsroot/src/share/mk/bsd.README,v
retrieving revision 1.328
diff -u -r1.328 bsd.README
--- share/mk/bsd.README 24 Feb 2014 07:23:41 -0000      1.328
+++ share/mk/bsd.README 24 Mar 2014 09:44:14 -0000
@@ -146,6 +146,11 @@
 MKCRYPTO_RC5   If not "no", RC5 support will be built into libcrypto_rc5
                Default: no
 
+MKCTF          If "no", do not build and install CTF tools, and also
+               don't generate and manipulate CTF data of ELF binaries
+               during build.
+               Default: no
+
 MKCVS          If "no", don't build or install cvs(1).
                Default: yes
 
Index: share/mk/bsd.own.mk
===================================================================
RCS file: /cvs/cvsroot/src/share/mk/bsd.own.mk,v
retrieving revision 1.790
diff -u -r1.790 bsd.own.mk
--- share/mk/bsd.own.mk 18 Mar 2014 13:10:27 -0000      1.790
+++ share/mk/bsd.own.mk 24 Mar 2014 09:44:14 -0000
@@ -504,7 +504,7 @@
 OBJC=          ${TOOL_OBJC.${ACTIVE_OBJC}}
 
 # Override with tools versions if needed
-.if exists(${TOOL_CTFCONVERT}) && exists(${TOOL_CTFMERGE})
+.if ${MKCTF:Uno} != "no" && exists(${TOOL_CTFCONVERT}) && 
exists(${TOOL_CTFMERGE})
 CTFCONVERT=    ${TOOL_CTFCONVERT}
 CTFMERGE=      ${TOOL_CTFMERGE}
 .endif
@@ -971,7 +971,7 @@
 #
 _MKVARS.no= \
        MKBSDGREP MKBSDTAR \
-       MKCATPAGES MKCRYPTO_RC5 MKDEBUG \
+       MKCATPAGES MKCRYPTO_RC5 MKCTF MKDEBUG \
        MKDEBUGLIB MKDTRACE MKEXTSRC \
        MKKYUA MKLLD MKLLDB MKLINT \
        MKMANZ MKMCLINKER MKOBJDIRS \
Index: share/mk/bsd.prog.mk
===================================================================
RCS file: /cvs/cvsroot/src/share/mk/bsd.prog.mk,v
retrieving revision 1.289
diff -u -r1.289 bsd.prog.mk
--- share/mk/bsd.prog.mk        9 Mar 2014 18:00:51 -0000       1.289
+++ share/mk/bsd.prog.mk        24 Mar 2014 09:44:14 -0000
@@ -62,7 +62,7 @@
 MKDEP_SUFFIXES?=       .o .ln
 
 # CTF preserve debug symbols
-.if defined(MKDTRACE) && (${MKDTRACE} != "no") && (${CFLAGS:M-g} != "")
+.if (${MKCTF:Uno} != "no") && (${CFLAGS:M-g} != "")
 CTFFLAGS+= -g
 CTFMFLAGS+= -g
 .if defined(HAVE_GCC) && ${HAVE_GCC} >= 48
Index: tools/Makefile
===================================================================
RCS file: /cvs/cvsroot/src/tools/Makefile,v
retrieving revision 1.171
diff -u -r1.171 Makefile
--- tools/Makefile      24 Feb 2014 07:23:44 -0000      1.171
+++ tools/Makefile      24 Mar 2014 09:44:19 -0000
@@ -69,6 +69,8 @@
 DTRACE_BITS+= .WAIT libelf
 DTRACE_BITS+= .WAIT libdwarf
 DTRACE_BITS+= .WAIT libctf
+.endif
+.if ${MKCTF} != "no"
 DTRACE_BITS+= .WAIT ctfconvert ctfmerge
 .endif
 


Home | Main Index | Thread Index | Old Index