Index: uspace/lib/cpp/include/internal/builtins.hpp
===================================================================
--- uspace/lib/cpp/include/internal/builtins.hpp	(revision 2fe861d024d7b2f951a1fe5b8d9ca9cb5333dd74)
+++ uspace/lib/cpp/include/internal/builtins.hpp	(revision 3f3514aa15a776255ff2ff61cc15643f789f130d)
@@ -42,8 +42,10 @@
  */
 
+#include <cstdlib>
+
 namespace std::aux
 {
     template<class T>
-    double log2(T val)
+    constexpr double log2(T val)
     {
         return __builtin_log2(static_cast<double>(val));
@@ -51,11 +53,17 @@
 
     template<class T>
-    double pow2(T exp)
+    constexpr double pow2(T exp)
     {
-        return __builtin_pow(2.0, static_cast<double>(val));
+        return __builtin_pow(2.0, static_cast<double>(exp));
     }
 
     template<class T>
-    double ceil(T val)
+    constexpr size_t pow2u(T exp)
+    {
+        return static_cast<size_t>(pow2(exp));
+    }
+
+    template<class T>
+    constexpr double ceil(T val)
     {
         return __builtin_ceil(static_cast<double>(val));
