Index: uspace/lib/cpp/src/internal/unwind.cpp
===================================================================
--- uspace/lib/cpp/src/internal/unwind.cpp	(revision 2841b4f9e131da184916148443e811543d076e46)
+++ uspace/lib/cpp/src/internal/unwind.cpp	(revision b6d68a3b43a3c1aa42b029511d36cbdd28207a91)
@@ -28,4 +28,5 @@
 
 #include <cstdint>
+#include <cstdlib>
 
 namespace __cxxabiv1
@@ -82,4 +83,5 @@
     {
         // TODO: implement
+        return _URC_NO_REASON;
     }
 
@@ -97,4 +99,5 @@
     {
         // TODO: implement
+        return 0;
     }
 
@@ -107,4 +110,5 @@
     {
         // TODO: implement
+        return 0;
     }
 
@@ -117,4 +121,5 @@
     {
         // TODO: implement
+        return 0;
     }
 
@@ -122,4 +127,5 @@
     {
         // TODO: implement
+        return 0;
     }
 
@@ -135,4 +141,81 @@
      * Stack unwinding functionality - Level 2.
      */
-    // TODO:
+    struct __cxa_exception
+    {
+        std::type_info* exceptionType;
+        void (*exceptionDestructor)(void*);
+        // TODO: Add handler types to <exception>.
+        /* std::unexpected_handler unexpectedHandler; */
+        void (*unexpectedHandler)();
+        /* std::terminate_handler terminateHandler; */
+        void (*terminateHandler)();
+        __cxa_exception* nextException;
+
+        int handlerCount;
+        int handlerSwitchValue;
+        const char* actionRecord;
+        const char* languageSpecificData;
+        void* catchTemp;
+        void* adjujstedPtr;
+
+        _Unwind_Exception unwindHeader;
+    };
+
+    struct __cxa_eh_globals
+    {
+        __cxa_exception* caughtExceptions;
+        unsigned int uncaughtExceptions;
+    };
+
+    extern "C" __cxa_eh_globals* __cxa_get_globals();
+
+    extern "C" __cxa_eh_globals* __cxa_get_globals_fast();
+
+    extern "C" void* __cxa_allocate_exception(std::size_t thrown_size)
+    {
+        // TODO: implement
+        return nullptr;
+    }
+
+    extern "C" void __cxa_free_exception(void* thrown_exception)
+    {
+        // TODO: implement
+    }
+
+    extern "C" void __cxa_throw(void* thrown_exception, std::type_info* tinfo, void (*dest)(void*))
+    {
+        // TODO: implement
+    }
+
+    extern "C" void* __cxa_get_exception_ptr(void*  exception_object)
+    {
+        // TODO: implement
+        return nullptr;
+    }
+
+    extern "C" void* __cxa_begin_catch(void* exception_object)
+    {
+        // TODO: implement
+        return nullptr;
+    }
+
+    extern "C" void __cxa_end_catch()
+    {
+        // TODO: implement
+    }
+
+    extern "C" void __cxa_rethrow()
+    {
+        // TODO: implement
+    }
+
+    extern "C" void __cxa_bad_cast()
+    {
+        // TODO: implement
+    }
+
+    extern "C" void __cxa_bad_typeid()
+    {
+        // TODO: implement
+    }
 }
