Index: kernel/arch/sparc32/src/sparc32.c
===================================================================
--- kernel/arch/sparc32/src/sparc32.c	(revision e8f3637174ee81e0db825432009a87e6dfe325f0)
+++ kernel/arch/sparc32/src/sparc32.c	(revision 6601f9bbc0efac1db2a0bb4f7661233c5be63316)
@@ -37,4 +37,5 @@
 #include <arch/interrupt.h>
 #include <arch/asm.h>
+#include <arch/barrier.h>
 #include <arch/machine_func.h>
 #include <func.h>
@@ -169,4 +170,27 @@
 }
 
+bool __atomic_compare_exchange_4(uint32_t *ptr, uint32_t *expected,
+    uint32_t desired, bool weak, int success_mm, int failure_mm)
+{
+	ipl_t ipl;
+	bool success;
+
+	/* XXX: This is a rather dummy implementation. */
+
+	ipl = interrupts_disable();
+	memory_barrier();
+	if (*ptr == *expected) {
+		success = true;
+		*ptr = desired;
+	} else {
+		success = false;
+		*expected = *ptr;
+	}
+	memory_barrier();
+	interrupts_restore(ipl);
+
+	return success;
+}
+
 /** @}
  */
