New DTrace source snapshot

Alexey Shuvaev shuvaev at
Tue Feb 12 10:11:45 UTC 2008

On Sun, Feb 10, 2008 at 10:42:47PM +0000, John Birrell wrote:
> This one fixes problems with the previous one:
> - buildkernel would fail because NO_CTF=1 was not set when
>   building the lone kernel build tool.
> - A number of things were missing from the dtrace kernel 
>   module on i386.
> - Missing syscall names in the kernel without witness have
>   been resolved so this snapshot should build with and without
>   witness, invariants, smp etc.
> <>
> Known problems:
> - This is a snapshot of current which contains lock order
>   reversal warnings. These are not related to the DTrace-specific
>   code.
> - ustack() as reported by Drew hasn't been ported yet, so don't
>   expect it to do anything.
> - On i386 mp_maxid in the kernel doesn't behave the same way that
>   it does on amd64. Work-around code exists for this, but it is
>   less than optimal.
> - A few of the tests that pass on amd64 don't work on i386. The
>   causes are under investigation. The worst one is the tailcall
>   test which causes the machine to reboot. Ugh.
> Note:
> - This snapshot should build cleanly on either a CURRENT or a
>   RELENG_7 system. If not, please tell me. RELENG_6 users should
>   upgrade to RELENG_7 first or contact me. The tool bootstrap
>   will fail to build when hosted on RELENG_6.
> - It should be ABI compatible with CURRENT and RELENG_7. If
>   not, please tell me.
> - This snapshot extends the basic OpenSolaris DTrace functionality
>   to support:
>   printm(const size_t bufrsize, uintptr_t *memref);
>   where:
>   'memref' is an an array of 2 uintptr_t entries -- address and
>   size.
> [snip]
> Target audience:
>   I'd like to get more people involved with running this code.
>   If you just like to follow FreeBSD current and don't even try
>   to contribute stuff back... this snapshot is something you
>   could try. I need some feeback from people who just use
> --
> John Birrell


The procedure I went through:
# cd /usr
# rm -R src
# tar -xvf /path/to/
# cd src
# time make buildworld

Buildworld failed in:
>>> stage 5.1: building 32 bit shim libraries
mkdir -p /usr/obj/usr/src/lib32/usr/include
mkdir -p /usr/obj/usr/src/lib32/usr/lib32
mkdir -p /usr/obj/usr/src/lib32/usr/share/misc
mtree -deU -f /usr/src/etc/mtree/BSD.include.dist  -p /usr/obj/usr/src/lib32/usr/include >/dev/null
mkdir -p /usr/obj/usr/src/tmp
ln -sf /usr/src/sys /usr/obj/usr/src/tmp
cd /usr/src/kerberos5/tools;  MAKEOBJDIRPREFIX=/usr/obj/lib32 make DESTDIR= obj
===> make-print-version (obj)
/usr/obj/lib32/usr/src/kerberos5/tools/make-print-version created for /usr/src/kerberos5/tools/make-print-version
===> make-roken (obj)
/usr/obj/lib32/usr/src/kerberos5/tools/make-roken created for /usr/src/kerberos5/tools/make-roken
===> asn1_compile (obj)
/usr/obj/lib32/usr/src/kerberos5/tools/asn1_compile created for /usr/src/kerberos5/tools/asn1_compile
cd /usr/src/kerberos5/tools;  MAKEOBJDIRPREFIX=/usr/obj/lib32 make DESTDIR= depend
===> make-print-version (depend)
rm -f .depend
mkdep -f .depend -a    -DHAVE_CONFIG_H -I/usr/src/kerberos5/tools/make-print-version/../../include /usr/src/kerberos5/tools/make-print-version/../../../crypto/heimdal/lib/vers/make-print-version.c
echo make-print-version: /usr/lib/libc.a  >> .depend
===> make-roken (depend)
awk -f /usr/src/kerberos5/tools/make-roken/../../../crypto/heimdal/lib/roken/roken.awk /usr/src/kerberos5/tools/make-roken/../../../crypto/heimdal/lib/roken/ > make-roken.c
rm -f .depend
mkdep -f .depend -a    -DHAVE_CONFIG_H -I/usr/src/kerberos5/tools/make-roken/../../include make-roken.c
echo make-roken: /usr/lib/libc.a  >> .depend
===> asn1_compile (depend)
sed -e '106s/"/"#ifdef __PARSE_UNITS_H__\\n/;' -e '106s/",/\\n#endif\\n",/' /usr/src/kerberos5/tools/asn1_compile/../../../crypto/heimdal/lib/asn1/gen_glue.c > gen_glue-fixed.c
lex -t  /usr/src/kerberos5/tools/asn1_compile/../../../crypto/heimdal/lib/asn1/lex.l > lex.c
yacc -d -o parse.c /usr/src/kerberos5/tools/asn1_compile/../../../crypto/heimdal/lib/asn1/parse.y
cd /usr/src/kerberos5/tools/asn1_compile/../make-print-version && make
cc -O2 -fno-strict-aliasing -pipe -march=nocona -DHAVE_CONFIG_H -I/usr/src/kerberos5/tools/make-print-version/../../include -g  -c /usr/src/kerberos5/tools/make-print-version/../../../crypto/heimdal/lib/vers/make-print-version.c
ctfconvert -L VERSION make-print-version.o
ctfconvert:No such file or directory
*** Error code 1

Stop in /usr/src/kerberos5/tools/make-print-version.
*** Error code 1

Stop in /usr/src/kerberos5/tools/asn1_compile.
*** Error code 1

Stop in /usr/src/kerberos5/tools.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
4693.728u 1668.096s 1:44:52.91 101.0%   5904+7451k 36308+18539io 13261pf+0w

The system is:
FreeBSD 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Thu Jan 31 13:04:43 CET 2008     lexx at  amd64

/etc/make.conf contains:
CPUTYPE         ?= nocona

Should I disable building 32-bit compatibility libraries?
If so, how can I do that? I saw some make switch some time ago, but
now I see nothing similar in src/Makefile or src/Makefile.inc1.

The second question, is parallel build with make -jN option supposed to work?


More information about the freebsd-current mailing list