Index: uspace/lib/c/generic/errno.c
===================================================================
--- uspace/lib/c/generic/errno.c	(revision a7dbd49e7efecbc9aae09ccdfd5f9c4193099885)
+++ uspace/lib/c/generic/errno.c	(revision fde2982c28dcf5ca0b83111e4df4d32832abdec9)
@@ -36,5 +36,10 @@
 #include <fibril.h>
 
-int _errno;
+static fibril_local int fibril_errno;
+
+int *__errno(void)
+{
+	return &fibril_errno;
+}
 
 /** @}
Index: uspace/lib/c/include/errno.h
===================================================================
--- uspace/lib/c/include/errno.h	(revision a7dbd49e7efecbc9aae09ccdfd5f9c4193099885)
+++ uspace/lib/c/include/errno.h	(revision fde2982c28dcf5ca0b83111e4df4d32832abdec9)
@@ -39,7 +39,7 @@
 #include <fibril.h>
 
-#define errno _errno
+#define errno  (*(__errno()))
 
-extern int _errno;
+extern int *__errno(void) __attribute__((const));
 
 #define EMFILE        (-18)
