-current XEN build fails with WITNESS off

Edwin Shao poleris at gmail.com
Sun Jun 7 01:50:34 UTC 2009


Hi all,

I am running Adrian's Xen image on a pygrub domU and am building the
kernel targeted towards production use. With that in mind, commenting
out the lines:
#options        WITNESS                 # Enable checks to detect
deadlocks and cycles
#options        WITNESS_SKIPSPIN        # Don't run witness on
spinlocks for speed

Yields the error:
In file included from /usr/src/sys/dev/xen/netfront/netfront.c:33:
/usr/src/sys/sys/sx.h:211:2: error: #error "LOCK_DEBUG not defined,
include <sys/lock.h> before <sys/sx.h>"
mkdep: compile failed

This is reproducible, at the very least, between 20090520 and 20090606.

A very simple fix is:
diff netfront.c netfront.old.c
33d32
< #include <sys/lock.h>

Let me know if I am doing something stupidly wrong (as I've only been
running FreeBSD since yesterday) or if you need any more information.

Thanks,
Edwin

PS. If there is any interest, I can provide weekly or so kernel
builds. My config file is aimed towards use in a production
environment with jails use, and thus has debugging options off and
pf/vlan/NULLFS/FDESCFS enabled.


---------- Error Log ----------


--------------------------------------------------------------
>>> Kernel build for XENNEKO started on Sat Jun  6 20:55:49 EDT 2009
--------------------------------------------------------------
===> XENNEKO
mkdir -p /usr/obj/usr/src/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf;
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
 config  -d /usr/obj/usr/src/sys/XENNEKO
/usr/src/sys/i386/conf/XENNEKO
Kernel build directory is /usr/obj/usr/src/sys/XENNEKO
Don't forget to do ``make cleandepend && make depend''

--------------------------------------------------------------
>>> stage 2.1: cleaning up the object tree
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/XENNEKO; MAKEOBJDIRPREFIX=/usr/obj
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=pentiumpro
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
_SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  VERSION="FreeBSD 8.0-CURRENT
i386 800095"  INSTALL="sh /usr/src/tools/install.sh"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
NO_CTF=1 make KERNEL=kernel cleandir
rm -f *.o *.so *.So *.ko *.s eddep errs  kernel.debug kernel
kernel.symbols  linterrs makelinks tags vers.c  vnode_if.c vnode_if.h
vnode_if_newproto.h vnode_if_typedef.h  eisa_if.c mmcbr_if.c
mmcbus_if.c card_if.c power_if.c pci_if.c pcib_if.c g_part_if.c
isa_if.c bus_if.c clock_if.c cpufreq_if.c device_if.c linker_if.c
serdev_if.c xenbus_if.c acpi_if.c eisa_if.h mmcbr_if.h mmcbus_if.h
card_if.h power_if.h pci_if.h pcib_if.h g_part_if.h isa_if.h bus_if.h
clock_if.h cpufreq_if.h device_if.h linker_if.h serdev_if.h
xenbus_if.h acpi_if.h  pccarddevs.h
rm -f .depend machine
cd /usr/src/sys/modules;
MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/XENNEKO/modules
KMODDIR=/boot/kernel MODULES_OVERRIDE="""" DEBUG_FLAGS="-g"
MACHINE=i386 KERNBUILDDIR="/usr/obj/usr/src/sys/XENNEKO"
SYSDIR="/usr/src/sys" make  cleandir

--------------------------------------------------------------
>>> stage 2.2: rebuilding the object tree
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/XENNEKO; MAKEOBJDIRPREFIX=/usr/obj
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=pentiumpro
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
_SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  VERSION="FreeBSD 8.0-CURRENT
i386 800095"  INSTALL="sh /usr/src/tools/install.sh"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
NO_CTF=1 make KERNEL=kernel obj
cd /usr/src/sys/modules;
MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/XENNEKO/modules
KMODDIR=/boot/kernel MODULES_OVERRIDE="""" DEBUG_FLAGS="-g"
MACHINE=i386 KERNBUILDDIR="/usr/obj/usr/src/sys/XENNEKO"
SYSDIR="/usr/src/sys" make  obj

--------------------------------------------------------------
>>> stage 2.3: build tools
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/XENNEKO;
MAKESRCPATH=/usr/src/sys/dev/aic7xxx/aicasm  make SSP_CFLAGS=
-DNO_CPU_CFLAGS -DNO_CTF  -f /usr/src/sys/dev/aic7xxx/aicasm/Makefile
Warning: Object directory not changed from original /usr/obj/usr/src/sys/XENNEKO
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign -c /usr/src/sys/dev/aic7xxx/aicasm/aicasm.c
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign -c /usr/src/sys/dev/aic7xxx/aicasm/aicasm_symbol.c
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign -c aicasm_gram.c
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign -c aicasm_macro_gram.c
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign -c aicasm_scan.c
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign -c aicasm_macro_scan.c
cc -O2 -fno-strict-aliasing -pipe -nostdinc -I/usr/include -I.
-I/usr/src/sys/dev/aic7xxx/aicasm -std=gnu99  -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
-Wno-pointer-sign  -o aicasm aicasm.o aicasm_symbol.o aicasm_gram.o
aicasm_macro_gram.o aicasm_scan.o aicasm_macro_scan.o -ll
cd /usr/src/sys/modules/aic7xxx/aicasm;
MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/XENNEKO/modules  make
SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF obj
cd /usr/src/sys/modules/aic7xxx/aicasm;
MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/XENNEKO/modules  make
SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF depend
cd /usr/src/sys/modules/aic7xxx/aicasm;
MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/XENNEKO/modules  make
SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF all

--------------------------------------------------------------
>>> stage 3.1: making dependencies
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/XENNEKO; MAKEOBJDIRPREFIX=/usr/obj
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=pentiumpro
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
_SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  VERSION="FreeBSD 8.0-CURRENT
i386 800095"  INSTALL="sh /usr/src/tools/install.sh"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
NO_CTF=1 make KERNEL=kernel depend -DNO_MODULES_OBJ
machine -> /usr/src/sys/i386/include
cc -c -O -pipe -march=pentiumpro -std=c99 -g -Wall -Wredundant-decls
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes
-Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign
-fformat-extensions -nostdinc -I. -I/usr/src/sys
-I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter
-I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath
-I/usr/src/sys/dev/ath/ath_hal -I/usr/src/sys/contrib/ngatm
-I/usr/src/sys/dev/twa -I/usr/src/sys/gnu/fs/xfs/FreeBSD
-I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs
-I/usr/src/sys/contrib/opensolaris/compat -I/usr/src/sys/dev/cxgb
-D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
-finline-limit=8000 --param inline-unit-growth=100 --param
large-function-growth=1000 -mno-align-long-strings
-mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2
-mno-sse3 -ffreestanding -fstack-protector
/usr/src/sys/i386/i386/genassym.c
NM='nm' sh /usr/src/sys/kern/genassym.sh genassym.o > assym.s
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -p
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -q
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -h
awk -f /usr/src/sys/tools/pccarddevs2h.awk /usr/src/sys/dev/pccard/pccarddevs
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/eisa/eisa_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/mmc/mmcbr_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/mmc/mmcbus_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pccard/card_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pccard/power_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pcib_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/geom/part/g_part_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/isa/isa_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/clock_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/cpufreq_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/linker_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/serdev_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/xen/xenbus/xenbus_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/acpica/acpi_if.m -c
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/eisa/eisa_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/mmc/mmcbr_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/mmc/mmcbus_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pccard/card_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pccard/power_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pcib_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/geom/part/g_part_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/isa/isa_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/clock_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/cpufreq_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/linker_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/serdev_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/xen/xenbus/xenbus_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/acpica/acpi_if.m -h
rm -f .newdep
make -V CFILES -V SYSTEM_CFILES -V GEN_CFILES |  MKDEP_CPP="cc -E"
CC="cc" xargs mkdep -a -f .newdep -O -pipe -march=pentiumpro -std=c99
-g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef
-Wno-pointer-sign -fformat-extensions -nostdinc  -I. -I/usr/src/sys
-I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter
-I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath
-I/usr/src/sys/dev/ath/ath_hal -I/usr/src/sys/contrib/ngatm
-I/usr/src/sys/dev/twa -I/usr/src/sys/gnu/fs/xfs/FreeBSD
-I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs
-I/usr/src/sys/contrib/opensolaris/compat -I/usr/src/sys/dev/cxgb
-D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
-fno-common -finline-limit=8000 --param inline-unit-growth=100 --param
large-function-growth=1000  -mno-align-long-strings
-mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow -mno-sse -mno-sse2
-mno-sse3 -ffreestanding -fstack-protec!
 tor
*** Error code 1

Stop in /usr/obj/usr/src/sys/XENNEKO.
*** Error code 1

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

Stop in /usr/src.

In file included from /usr/src/sys/dev/xen/netfront/netfront.c:33:
/usr/src/sys/sys/sx.h:211:2: error: #error "LOCK_DEBUG not defined,
include <sys/lock.h> before <sys/sx.h>"
mkdep: compile failed


More information about the freebsd-xen mailing list