Index: uspace/lib/c/include/adt/list.h
===================================================================
--- uspace/lib/c/include/adt/list.h	(revision 72ac106d682c5a2dca554337cbc1611901fa41af)
+++ uspace/lib/c/include/adt/list.h	(revision c4c90c84f0ad339d3b617140f356c47f85e21dff)
@@ -183,5 +183,5 @@
  *
  */
-_NO_TRACE static inline void list_initialize(list_t *list)
+_NO_TRACE static inline __CONSTEXPR void list_initialize(list_t *list)
 {
 	list->head.prev = &list->head;
Index: uspace/lib/c/include/fibril_synch.h
===================================================================
--- uspace/lib/c/include/fibril_synch.h	(revision 72ac106d682c5a2dca554337cbc1611901fa41af)
+++ uspace/lib/c/include/fibril_synch.h	(revision c4c90c84f0ad339d3b617140f356c47f85e21dff)
@@ -153,5 +153,17 @@
 extern void __fibril_synch_fini(void);
 
-extern void fibril_mutex_initialize(fibril_mutex_t *);
+/** Initialize fibril mutex.
+ *
+ * Kept as in-line to allow constexpr marker for C++ library where this
+ * is used by C++ mutex type (list initialization are two assignments
+ * so it is actually reasonable to have this inlined).
+ */
+static inline __CONSTEXPR void fibril_mutex_initialize(fibril_mutex_t *fm)
+{
+	fm->oi.owned_by = NULL;
+	fm->counter = 1;
+	list_initialize(&fm->waiters);
+}
+
 extern void fibril_mutex_lock(fibril_mutex_t *);
 extern bool fibril_mutex_trylock(fibril_mutex_t *);
