Index: kernel/arch/abs32le/Makefile.inc
===================================================================
--- kernel/arch/abs32le/Makefile.inc	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/abs32le/Makefile.inc	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -50,4 +50,8 @@
 endif
 
+ifeq ($(COMPILER),clang)
+	CLANG_ARCH = i386
+endif
+
 BITS = 32
 ENDIANESS = LE
Index: kernel/arch/sparc64/include/mm/sun4v/mmu.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4v/mmu.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/mm/sun4v/mmu.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -28,5 +28,5 @@
  */
 
-/** @addtogroup sparc64mm	
+/** @addtogroup sparc64mm
  * @{
  */
Index: kernel/arch/sparc64/include/mm/sun4v/tlb.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4v/tlb.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/mm/sun4v/tlb.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -28,5 +28,5 @@
  */
 
-/** @addtogroup sparc64mm	
+/** @addtogroup sparc64mm
  * @{
  */
Index: kernel/arch/sparc64/include/mm/sun4v/tsb.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4v/tsb.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/mm/sun4v/tsb.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -28,5 +28,5 @@
  */
 
-/** @addtogroup sparc64mm	
+/** @addtogroup sparc64mm
  * @{
  */
Index: kernel/arch/sparc64/include/mm/sun4v/tte.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4v/tte.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/mm/sun4v/tte.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup sparc64mm	
+/** @addtogroup sparc64mm
  * @{
  */
Index: kernel/arch/sparc64/include/smp/sun4v/smp.h
===================================================================
--- kernel/arch/sparc64/include/smp/sun4v/smp.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/smp/sun4v/smp.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -38,5 +38,8 @@
 #define KERN_sparc64_sun4v_SMP_H_
 
-bool calculate_optimal_nrdy(exec_unit_t *exec_unit);
+#include <typedefs.h>
+#include <arch/sun4v/cpu.h>
+
+extern bool calculate_optimal_nrdy(exec_unit_t *);
 
 #endif
Index: kernel/arch/sparc64/include/sun4v/cpu.h
===================================================================
--- kernel/arch/sparc64/include/sun4v/cpu.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/sun4v/cpu.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -44,4 +44,7 @@
 #ifndef __ASM__
 
+#include <atomic.h>
+#include <synch/spinlock.h>
+
 struct cpu;
 
@@ -51,5 +54,4 @@
 	uint64_t cpuids[MAX_CORE_STRANDS];
 	struct cpu *cpus[MAX_CORE_STRANDS];
-	//cpu_t *cpus[MAX_CORE_STRANDS];
 	atomic_t nrdy;
 	SPINLOCK_DECLARE(proposed_nrdy_lock);
Index: kernel/arch/sparc64/include/sun4v/ipi.h
===================================================================
--- kernel/arch/sparc64/include/sun4v/ipi.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/sun4v/ipi.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -38,7 +38,8 @@
 #define KERN_sparc64_sun4v_IPI_H_
 
-uint64_t ipi_brodcast_to(void (*func)(void), uint16_t cpu_list[MAX_NUM_STRANDS],
-		uint64_t list_size);
-uint64_t ipi_unicast_to(void (*func)(void), uint16_t cpu_id);
+#include <arch/types.h>
+
+extern uint64_t ipi_brodcast_to(void (*)(void), uint16_t cpu_list[], uint64_t);
+extern uint64_t ipi_unicast_to(void (*)(void), uint16_t);
 
 #endif
Index: kernel/arch/sparc64/include/trap/sun4v/interrupt.h
===================================================================
--- kernel/arch/sparc64/include/trap/sun4v/interrupt.h	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/include/trap/sun4v/interrupt.h	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -40,6 +40,6 @@
 #ifndef __ASM__
 
-void sun4v_ipi_init(void);
-void cpu_mondo(void);
+extern void sun4v_ipi_init(void);
+extern void cpu_mondo(void);
 
 #endif
Index: kernel/arch/sparc64/src/cpu/sun4v/cpu.c
===================================================================
--- kernel/arch/sparc64/src/cpu/sun4v/cpu.c	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/src/cpu/sun4v/cpu.c	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -42,6 +42,4 @@
 #include <arch/sun4v/hypercall.h>
 #include <arch/trap/sun4v/interrupt.h>
-
-//#include <arch/trap/sun4v/interrupt.h>
 
 /** Perform sparc64 specific initialization of the processor structure for the
@@ -97,5 +95,5 @@
 {
 	printf("cpu%d: Niagara (%d MHz)\n", m->id,
-		m->arch.clock_frequency / 1000000);
+	    m->arch.clock_frequency / 1000000);
 }
 
Index: kernel/arch/sparc64/src/smp/sun4u/smp.c
===================================================================
--- kernel/arch/sparc64/src/smp/sun4u/smp.c	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/src/smp/sun4u/smp.c	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -36,5 +36,5 @@
 #include <genarch/ofw/ofw_tree.h>
 #include <cpu.h>
-#include <arch/sun4u/cpu_family.h>
+#include <arch/cpu_family.h>
 #include <arch/cpu.h>
 #include <arch.h>
@@ -45,5 +45,5 @@
 #include <synch/waitq.h>
 #include <print.h>
-#include <arch/sun4u/cpu_node.h>
+#include <arch/cpu_node.h>
 
 /**
@@ -62,5 +62,5 @@
 {
 	ofw_tree_node_t *node;
-	count_t cnt = 0;
+	unsigned int cnt = 0;
 	
 	if (is_us() || is_us_iii()) {
Index: kernel/arch/sparc64/src/trap/sun4v/interrupt.c
===================================================================
--- kernel/arch/sparc64/src/trap/sun4v/interrupt.c	(revision f8f7dba7f188538fbac35a54676bdf8299a6e04a)
+++ kernel/arch/sparc64/src/trap/sun4v/interrupt.c	(revision f389409f87a298e33da4584fafa80ff73cc3c7da)
@@ -36,5 +36,4 @@
 #include <arch/trap/interrupt.h>
 #include <arch/sparc64.h>
-#include <arch/trap/interrupt.h>
 #include <interrupt.h>
 #include <ddi/irq.h>
@@ -89,5 +88,5 @@
 		CPU_MONDO_NENTRIES) != EOK)
 			panic("Initializing mondo queue failed on CPU %d.\n",
-			CPU->arch.id);
+			    CPU->arch.id);
 }
 
@@ -98,24 +97,23 @@
 void cpu_mondo(void)
 {
+#ifdef CONFIG_SMP
 	unsigned int tail = asi_u64_read(ASI_QUEUE, VA_CPU_MONDO_QUEUE_TAIL);
 	unsigned int head = asi_u64_read(ASI_QUEUE, VA_CPU_MONDO_QUEUE_HEAD);
 
 	while (head != tail) {
-
 		uint64_t data1 = cpu_mondo_queues[CPU->id][0];
 
 		head = (head + CPU_MONDO_ENTRY_SIZE * sizeof(uint64_t)) %
-			(CPU_MONDO_QUEUE_SIZE * sizeof(uint64_t));
+		    (CPU_MONDO_QUEUE_SIZE * sizeof(uint64_t));
 		asi_u64_write(ASI_QUEUE, VA_CPU_MONDO_QUEUE_HEAD, head);
 
-		if (data1 == (uint64_t) tlb_shootdown_ipi_recv) {
+		if (data1 == (uintptr_t) tlb_shootdown_ipi_recv) {
 			((void (*)(void)) data1)();
 		} else {
 			printf("Spurious interrupt on %d, data = %lx.\n",
-				CPU->arch.id, data1);
+			    CPU->arch.id, data1);
 		}
-
 	}
-
+#endif
 }
 
