Index: uspace/lib/cpp/src/internal/runtime.cpp
===================================================================
--- uspace/lib/cpp/src/internal/runtime.cpp	(revision 40340461bf1a7b428bec8eefc784626cf4312724)
+++ uspace/lib/cpp/src/internal/runtime.cpp	(revision 4bea22a1c4d2a50915ea6e974e5cc0c24b65a99d)
@@ -31,4 +31,5 @@
 #include <internal/abi.hpp>
 #include <exception>
+#include <mutex>
 
 namespace __cxxabiv1
@@ -119,4 +120,26 @@
     }
 
+    using guard_t = std::uint64_t;
+    std::mutex static_guard_mtx{};
+
+    extern "C" int __cxa_guard_acquire(guard_t* guard)
+    {
+        static_guard_mtx.lock();
+
+        return !*((std::uint8_t*)guard);
+    }
+
+    extern "C" void __cxa_guard_release(guard_t* guard)
+    {
+        *((std::uint8_t*)guard) = 1;
+
+        static_guard_mtx.unlock();
+    }
+
+    extern "C" void __cxa_guard_abort(guard_t* guard)
+    {
+        static_guard_mtx.unlock();
+    }
+
     __fundamental_type_info::~__fundamental_type_info()
     { /* DUMMY BODY */ }
