Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Dec 2007 12:44:56 +0100
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Brian O'Shea <b_oshea@yahoo.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: buildkernel with INVARIANTS, WITNESS, DEBUG_LOCKS, etc. fails
Message-ID:  <4774E1B8.1080500@FreeBSD.org>
In-Reply-To: <276958.21567.qm@web39510.mail.mud.yahoo.com>
References:  <276958.21567.qm@web39510.mail.mud.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Brian O'Shea wrote:
> Hello FreeBSD developers,
> 
> Building a FreeBSD 6.2-RELEASE kernel on an Intel Pentium 4 with the
> following config options causes buildkernel to fail with undefined
> references to stack_save, stack_zero, and stack_print functions:
> 
> makeoptions DEBUG=-g
> options     INVARIANTS
> options     INVARIANT_SUPPORT
> options     WITNESS
> options     DEBUG_LOCKS
> options     DEBUG_VFS_LOCKS
> options     DIAGNOSTIC
> 
> Am I just omitting an option that causes this code to be linked
> correctly, or alternatively is there a workaround for this?  I followed
> the instructions from the following developers handbook page on
> debugging deadlocks:
> 
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-deadlocks.html
> 
> Below I have included as much information as I can think of that would
> be relevant to this problem.  Please let me know if you would like me to
> provide any more information.
> 
> Regards,
> -brian
> 
> 
> Output from uname -a :
> FreeBSD apsara.hsd1.ca.comcast.net. 6.2-RELEASE FreeBSD 6.2-RELEASE #1: Fri Nov
>  9 00:08:34 PST 2007    
> root@apsara.hsd1.ca.comcast.net.:/usr/obj/usr/src/sys/APSARA  i386
> 
> CPU information from dmesg:
> 
> CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.95-MHz 686-class CPU)
>   Origin = "GenuineIntel"  Id = 0xf24  Stepping = 4
>  
> Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,C
> MOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
> 
> Relevant (non-comment) diffs between a kernel config that bulids
> (APSARA) and one that doesn't (APSARA-DEBUG) included below:
> 
> 23c22
> < ident         APSARA
> ---
>> ident         APSARA-DEBUG
> 28c27,38
> < #makeoptions  DEBUG=-g                # Build kernel with gdb(1) debug
> symbols
> ---
>> makeoptions   DEBUG=-g                # Build kernel with gdb(1) debug
> symbols
>> #
>> # The following options have been set in an attempt to track down the
>> # problem with the snd_cmi driver, which causes the system to hang if
>> # it is used to play audio content:
>> #
>> options               INVARIANTS
>> options               INVARIANT_SUPPORT
>> options               WITNESS
>> options               DEBUG_LOCKS
>> options               DEBUG_VFS_LOCKS
>> options               DIAGNOSTIC
> 
> Relevant error messages from make buildkernel (with KERNCONF set to
> APSARA-DEBUG) included below:
> 
> linking kernel.debug
> kern_lock.o(.text+0x15d): In function `lockmgr':
> /usr/src/sys/kern/kern_lock.c:176: undefined reference to `stack_save'
> kern_lock.o(.text+0x26c):/usr/src/sys/kern/kern_lock.c:223: undefined reference
> to `stack_save'
> kern_lock.o(.text+0x4c4):/usr/src/sys/kern/kern_lock.c:306: undefined reference
> to `stack_save'
> kern_lock.o(.text+0x5f9):/usr/src/sys/kern/kern_lock.c:365: undefined reference
> to `stack_save'
> kern_lock.o(.text+0x737):/usr/src/sys/kern/kern_lock.c:410: undefined reference
> to `stack_save'
> kern_lock.o(.text+0x95d): In function `lockinit':
> /usr/src/sys/kern/kern_lock.c:504: undefined reference to `stack_zero'
> kern_lock.o(.text+0xae3): In function `lockmgr_printinfo':
> /usr/src/sys/kern/kern_lock.c:596: undefined reference to `stack_print'
> *** Error code 1

I think you also need DDB.  This is a minor bug which you could send-pr 
about if you like.

Kris




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4774E1B8.1080500>