Index: uspace/lib/cpp/include/__bits/adt/list.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/adt/list.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/adt/list.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -32,4 +32,5 @@
 #include <__bits/adt/list_node.hpp>
 #include <__bits/insert_iterator.hpp>
+#include <cassert>
 #include <cstdlib>
 #include <iterator>
@@ -580,4 +581,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
@@ -585,4 +587,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
@@ -1042,4 +1045,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
@@ -1053,4 +1057,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
@@ -1064,4 +1069,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
@@ -1069,4 +1075,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
@@ -1075,4 +1082,5 @@
             {
                 // TODO: implement
+                __unimplemented();
             }
 
Index: uspace/lib/cpp/include/__bits/complex.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/complex.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/complex.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -30,4 +30,5 @@
 #define LIBCPP_BITS_COMPLEX
 
+#include <cassert>
 #include <iosfwd>
 #include <sstream>
@@ -724,4 +725,6 @@
     {
         // TODO: implement
+        __unimplemented();
+        return is;
     }
 
@@ -766,4 +769,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -779,4 +783,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -786,4 +791,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -793,4 +799,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return complex<T>{};
     }
@@ -804,4 +811,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -811,4 +819,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -818,4 +827,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -825,4 +835,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -832,4 +843,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -839,4 +851,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -846,4 +859,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -853,4 +867,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -860,4 +875,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -867,4 +883,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -874,4 +891,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -881,4 +899,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return base;
     }
@@ -888,4 +907,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return base;
     }
@@ -895,4 +915,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return complex<T>{base};
     }
@@ -902,4 +923,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -909,4 +931,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -916,4 +939,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -923,4 +947,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
@@ -930,4 +955,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return c;
     }
Index: uspace/lib/cpp/include/__bits/functional/bind.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/functional/bind.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/functional/bind.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -33,4 +33,5 @@
 #include <__bits/functional/invoke.hpp>
 #include <__bits/functional/reference_wrapper.hpp>
+#include <cassert>
 #include <tuple>
 #include <type_traits>
@@ -133,4 +134,5 @@
                 constexpr decltype(auto) operator[](const bind_t<R, B, F, BindArgs...> b)
                 {
+                    __unimplemented();
                     return b; // TODO: bind subexpressions
                 }
Index: uspace/lib/cpp/include/__bits/io/fstream.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/io/fstream.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/io/fstream.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -30,4 +30,5 @@
 #define LIBCPP_BITS_IO_FSTREAM
 
+#include <cassert>
 #include <cstdio>
 #include <ios>
@@ -267,4 +268,5 @@
             {
                 // TODO: implement
+                __unimplemented();
                 return nullptr;
             }
@@ -274,4 +276,5 @@
             {
                 // TODO: implement
+                __unimplemented();
                 return pos_type{};
             }
@@ -281,4 +284,5 @@
             {
                 // TODO: implement
+                __unimplemented();
                 return pos_type{};
             }
Index: uspace/lib/cpp/include/__bits/io/istream.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/io/istream.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/io/istream.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -30,4 +30,5 @@
 #define LIBCPP_BITS_IO_ISTREAM
 
+#include <cassert>
 #include <ios>
 #include <iosfwd>
@@ -339,4 +340,6 @@
             {
                 // TODO: implement
+                __unimplemented();
+                return *this;
             }
 
@@ -344,4 +347,6 @@
             {
                 // TODO: implement
+                __unimplemented();
+                return *this;
             }
 
@@ -349,4 +354,6 @@
             {
                 // TODO: implement
+                __unimplemented();
+                return *this;
             }
 
@@ -354,4 +361,6 @@
             {
                 // TODO: implement
+                __unimplemented();
+                return *this;
             }
 
Index: uspace/lib/cpp/include/__bits/io/ostream.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/io/ostream.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/io/ostream.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -30,4 +30,5 @@
 #define LIBCPP_BITS_IO_OSTREAM
 
+#include <cassert>
 #include <ios>
 #include <iosfwd>
@@ -458,4 +459,5 @@
             {
                 // TODO: implement
+                __unimplemented();
                 return pos_type{};
             }
@@ -464,4 +466,5 @@
             {
                 // TODO: implement
+                __unimplemented();
                 return *this;
             }
@@ -470,4 +473,5 @@
             {
                 // TODO: implement
+                __unimplemented();
                 return *this;
             }
Index: uspace/lib/cpp/include/__bits/new.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/new.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/new.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -30,4 +30,5 @@
 #define LIBCPP_BITS_NEW
 
+#include <cstddef>
 #include <exception>
 
Index: uspace/lib/cpp/include/__bits/string/string.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/string/string.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/string/string.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -32,4 +32,5 @@
 #include <__bits/string/stringfwd.hpp>
 #include <algorithm>
+#include <cassert>
 #include <initializer_list>
 #include <iosfwd>
@@ -178,4 +179,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return 0;
         }
@@ -184,4 +186,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return 0;
         }
@@ -190,4 +193,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -196,4 +200,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -202,4 +207,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -208,4 +214,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -266,4 +273,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return 0;
         }
@@ -272,4 +280,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return 0;
         }
@@ -278,4 +287,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -284,4 +294,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -290,4 +301,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -296,4 +308,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return nullptr;
         }
@@ -353,4 +366,5 @@
         {
             // TODO: This function does not exits...
+            __unimplemented();
             //return hel::wstr_lcmp(s1, s2, n);
             return 0;
@@ -1939,4 +1953,5 @@
         {
             // TODO: implement
+            __unimplemented();
             return size_t{};
         }
Index: uspace/lib/cpp/include/__bits/thread/future.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/thread/future.hpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/__bits/thread/future.hpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -30,4 +30,5 @@
 #define LIBCPP_BITS_THREAD_FUTURE
 
+#include <cassert>
 #include <memory>
 #include <system_error>
@@ -171,4 +172,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -178,4 +180,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 }
Index: uspace/lib/cpp/include/cassert
===================================================================
--- uspace/lib/cpp/include/cassert	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/include/cassert	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -31,28 +31,15 @@
 
 
-namespace std::hel
-{
-    extern "C" {
-        #include <assert.h>
-    }
+extern "C" {
+    #include <assert.h>
 }
 
-namespace std
-{
-    // Note: The only thing imported is assert
-    //       and that is a macro.
-}
+// TODO: For some reason, this function isn't visible (maybe the
+//       noreturn attribute?), adding a redeclaration here for the
+//       time being.
 
-/**
- * We need to fix the assert macro because it uses
- * a non-standard function that we have in the
- * std::hel namespace.
- */
-#undef assert
-#define assert(expr) \
-	do { \
-		if (!(expr)) \
-			std::hel::assert_abort(#expr, __FILE__, __LINE__); \
-	} while (0)
+extern void __helenos_assert_abort(const char *, const char *, unsigned int);
+
+#define __unimplemented() assert(!"Not implemented!")
 
 #endif
Index: uspace/lib/cpp/src/__bits/runtime.cpp
===================================================================
--- uspace/lib/cpp/src/__bits/runtime.cpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/src/__bits/runtime.cpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -33,4 +33,6 @@
 #include <mutex>
 
+void* __dso_handle = nullptr;
+
 namespace __cxxabiv1
 {
Index: uspace/lib/cpp/src/__bits/unwind.cpp
===================================================================
--- uspace/lib/cpp/src/__bits/unwind.cpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/src/__bits/unwind.cpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2017 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -27,4 +27,5 @@
  */
 
+#include <cassert>
 #include <cstdint>
 #include <cstdlib>
@@ -175,4 +176,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return nullptr;
     }
@@ -181,4 +183,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -186,4 +189,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -191,4 +195,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return nullptr;
     }
@@ -197,4 +202,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return nullptr;
     }
@@ -203,4 +209,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -208,4 +215,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -213,4 +221,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -218,4 +227,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -223,4 +233,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 
@@ -231,4 +242,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return _URC_NO_REASON;
     }
Index: uspace/lib/cpp/src/condition_variable.cpp
===================================================================
--- uspace/lib/cpp/src/condition_variable.cpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/src/condition_variable.cpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -27,4 +27,5 @@
  */
 
+#include <cassert>
 #include <condition_variable>
 
@@ -88,4 +89,5 @@
     {
         // TODO: implement
+        __unimplemented();
     }
 }
Index: uspace/lib/cpp/src/string.cpp
===================================================================
--- uspace/lib/cpp/src/string.cpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/src/string.cpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -27,4 +27,5 @@
  */
 
+#include <cassert>
 #include <string>
 
@@ -34,4 +35,5 @@
     {
         // TODO: implement using stol once we have numeric limits
+        __unimplemented();
         return 0;
     }
@@ -72,4 +74,5 @@
     {
         // TODO: implement using stol once we have numeric limits
+        __unimplemented();
         return 0;
     }
@@ -78,4 +81,5 @@
     {
         // TODO: implement using stoul once we have numeric limits
+        __unimplemented();
         return 0;
     }
@@ -84,4 +88,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0.f;
     }
@@ -90,4 +95,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0.0;
     }
@@ -96,4 +102,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0.0l;
     }
@@ -206,4 +213,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0;
     }
@@ -212,4 +220,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0;
     }
@@ -218,4 +227,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0;
     }
@@ -224,4 +234,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0;
     }
@@ -230,4 +241,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0;
     }
@@ -236,4 +248,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0.f;
     }
@@ -242,4 +255,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0.0;
     }
@@ -248,4 +262,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return 0.0l;
     }
@@ -254,4 +269,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -260,4 +276,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -266,4 +283,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -272,4 +290,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -278,4 +297,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -284,4 +304,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -290,4 +311,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -296,4 +318,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
@@ -302,4 +325,5 @@
     {
         // TODO: implement
+        __unimplemented();
         return wstring{};
     }
Index: uspace/lib/cpp/src/thread.cpp
===================================================================
--- uspace/lib/cpp/src/thread.cpp	(revision fec7ba0dc652cc9b10575bcf70be9f369491905c)
+++ uspace/lib/cpp/src/thread.cpp	(revision ad40b74be3d68c92be9579f82a46483c3613a06d)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2018 Jaroslav Jindrak
+ * Copyright (c) 2019 Jaroslav Jindrak
  * All rights reserved.
  *
@@ -27,4 +27,5 @@
  */
 
+#include <cassert>
 #include <cstdlib>
 #include <exception>
@@ -120,4 +121,5 @@
     {
         // TODO:
+        __unimplemented();
         return 0;
     }
