Index: src/driver/cfa.cc
===================================================================
--- src/driver/cfa.cc	(revision 1f32235924d0613e557a60e3bf8998e176c6dc0e)
+++ src/driver/cfa.cc	(revision 1997b4e812dbb8458b745e5395a203821f48882c)
@@ -347,4 +347,8 @@
 		args[nargs] = "--undefined=__cfaabi_appready_startup";
 		nargs += 1;
+		args[nargs] = "-Xlinker";
+		nargs += 1;
+		args[nargs] = "--undefined=__cfaabi_dbg_record";
+		nargs += 1;
 
 		// include the cfa library in case it's needed
Index: src/libcfa/bits/locks.h
===================================================================
--- src/libcfa/bits/locks.h	(revision 1f32235924d0613e557a60e3bf8998e176c6dc0e)
+++ src/libcfa/bits/locks.h	(revision 1997b4e812dbb8458b745e5395a203821f48882c)
@@ -64,4 +64,10 @@
 		extern void disable_interrupts();
 		extern void enable_interrupts_noPoll();
+
+		#ifdef __CFA_DEBUG__
+			void __cfaabi_dbg_record(__spinlock_t & this, const char * prev_name);
+		#else
+			#define __cfaabi_dbg_record(x, y)
+		#endif
 	}
 
@@ -71,11 +77,4 @@
 		this.lock = 0;
 	}
-
-
-	#ifdef __CFA_DEBUG__
-		void __cfaabi_dbg_record(__spinlock_t & this, const char * prev_name);
-	#else
-		#define __cfaabi_dbg_record(x, y)
-	#endif
 
 	// Lock the spinlock, return false if already acquired
Index: src/libcfa/concurrency/kernel.c
===================================================================
--- src/libcfa/concurrency/kernel.c	(revision 1f32235924d0613e557a60e3bf8998e176c6dc0e)
+++ src/libcfa/concurrency/kernel.c	(revision 1997b4e812dbb8458b745e5395a203821f48882c)
@@ -833,7 +833,9 @@
 // Debug
 __cfaabi_dbg_debug_do(
-	void __cfaabi_dbg_record(__spinlock_t & this, const char * prev_name) {
-		this.prev_name = prev_name;
-		this.prev_thrd = kernelTLS.this_thread;
+	extern "C" {
+		void __cfaabi_dbg_record(__spinlock_t & this, const char * prev_name) {
+			this.prev_name = prev_name;
+			this.prev_thrd = kernelTLS.this_thread;
+		}
 	}
 )
Index: src/libcfa/startup.c
===================================================================
--- src/libcfa/startup.c	(revision 1f32235924d0613e557a60e3bf8998e176c6dc0e)
+++ src/libcfa/startup.c	(revision 1997b4e812dbb8458b745e5395a203821f48882c)
@@ -40,5 +40,7 @@
 
 struct __spinlock_t;
-void __cfaabi_dbg_record(struct __spinlock_t & this, const char * prev_name) __attribute__(( weak )) {}
+extern "C" {
+	void __cfaabi_dbg_record(struct __spinlock_t & this, const char * prev_name) __attribute__(( weak )) {}
+}
 
 // Local Variables: //
