fix for undefined symbol 'panic'

Ken Smith kensmith at cse.Buffalo.EDU
Sun Jan 25 21:09:26 PST 2004


On Sun, Jan 25, 2004 at 05:45:29PM +0100, Harti Brandt wrote:

> Go ahead. I think the arguments are passed in %o0, %o1 and %o2. I don't
> know in what order, however.

Thanks.  I think this is it.  With this in place the kernel compiles.
I checked it by placing a bogus use of the macro into
sys/sparc64/sparc64/swtch.S and the resulting panic message was:

panic: Test call to panic
at line 0 in file (null)
cpuid = 0;
Debugger("panic")
Stopped at      Debugger+0x1c:  ta              %xcc, 1
db>

I don't hold much hope of getting the line number and filename right
(and I think you get the same results from the places the i386 assembly
code calls the new __panic, sys/i386/i386/swtch.s).

I sent this in to my mentor for approval, but if anyone sees anything
wrong with it let me know.

Thanks.

Index: asmacros.h
===================================================================
RCS file: /home/ncvs/src/sys/sparc64/include/asmacros.h,v
retrieving revision 1.17
diff -u -r1.17 asmacros.h
--- asmacros.h	16 Jul 2003 00:08:43 -0000	1.17
+++ asmacros.h	26 Jan 2004 04:52:24 -0000
@@ -101,8 +101,10 @@
 	.sect	.rodata ; \
 9:	.asciz	msg ; \
 	.previous ; \
-	SET(9b, r1, %o0) ; \
-	call	panic ; \
+	SET(9b, r1, %o2) ; \
+	clr	%o1 ; \
+	clr	%o0 ; \
+	call	__panic ; \
 	 nop
 
 #ifdef INVARIANTS


-- 
						Ken Smith
- From there to here, from here to      |       kensmith at cse.buffalo.edu
  there, funny things are everywhere.   |
                      - Theodore Geisel |


More information about the freebsd-sparc64 mailing list