diff -ruP linux-2.4.26.orig/arch/sparc/kernel/Makefile linux-2.4.26/arch/sparc/kernel/Makefile
--- linux-2.4.26.orig/arch/sparc/kernel/Makefile	Fri Nov 28 19:26:19 2003
+++ linux-2.4.26/arch/sparc/kernel/Makefile	Fri May  7 20:16:16 2004
@@ -26,7 +26,8 @@
 	    sys_sparc.o sunos_asm.o sparc-stub.o systbls.o \
 	    time.o windows.o cpu.o devices.o sclow.o \
 	    tadpole.o tick14.o ptrace.o sys_solaris.o \
-	    unaligned.o muldiv.o pcic.o semaphore.o sparc_ksyms.o
+	    unaligned.o unaligned_panic.o muldiv.o pcic.o semaphore.o \
+	    sparc_ksyms.o
 
 obj-$(CONFIG_SUN4) += sun4setup.o
 obj-$(CONFIG_SMP) += trampoline.o smp.o sun4m_smp.o sun4d_smp.o
diff -ruP linux-2.4.26.orig/arch/sparc/kernel/unaligned.c linux-2.4.26/arch/sparc/kernel/unaligned.c
--- linux-2.4.26.orig/arch/sparc/kernel/unaligned.c	Mon Feb 25 20:37:56 2002
+++ linux-2.4.26/arch/sparc/kernel/unaligned.c	Fri May  7 20:15:29 2004
@@ -168,11 +168,18 @@
 	}
 }
 
+#if 0
 /* This is just to make gcc think panic does return... */
 static void unaligned_panic(char *str)
 {
 	panic(str);
 }
+
+#else
+// Specifying unaligned_panic() in the same .c file seems not enough
+// function moved to unaligned_panic.c
+extern void unaligned_panic(char *str);
+#endif
 
 #define do_integer_load(dest_reg, size, saddr, is_signed, errh) ({		\
 __asm__ __volatile__ (								\
diff -ruP linux-2.4.26.orig/arch/sparc/kernel/unaligned_panic.c linux-2.4.26/arch/sparc/kernel/unaligned_panic.c
--- linux-2.4.26.orig/arch/sparc/kernel/unaligned_panic.c	Thu Jan  1 01:00:00 1970
+++ linux-2.4.26/arch/sparc/kernel/unaligned_panic.c	Fri May  7 20:15:36 2004
@@ -0,0 +1,18 @@
+/* unaligned_panic glue code */
+
+// copy-pasted.. don't know if we really need it..
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <asm/ptrace.h>
+#include <asm/processor.h>
+#include <asm/system.h>
+#include <asm/uaccess.h>
+#include <linux/smp.h>
+#include <linux/smp_lock.h>
+
+/* This is just to make gcc think panic does return... */
+void unaligned_panic(char *str)
+{
+	panic(str);
+}
