Index: uspace/lib/posix/stdlib.c
===================================================================
--- uspace/lib/posix/stdlib.c	(revision 2fc50723fdce8fc1637c5e6271d4387af6c0bd98)
+++ uspace/lib/posix/stdlib.c	(revision 4d10fc88cc2193590b10578747c494f294c4ddb1)
@@ -33,9 +33,7 @@
  */
 
-#undef qsort
+#define LIBPOSIX_INTERNAL
 
-#undef getenv
-
-#undef realpath
+#include "stdlib.h"
 
 /**
Index: uspace/lib/posix/stdlib.h
===================================================================
--- uspace/lib/posix/stdlib.h	(revision 2fc50723fdce8fc1637c5e6271d4387af6c0bd98)
+++ uspace/lib/posix/stdlib.h	(revision 4d10fc88cc2193590b10578747c494f294c4ddb1)
@@ -56,4 +56,10 @@
 extern char *posix_realpath(const char *restrict name, char *restrict resolved);
 
+#ifndef LIBPOSIX_INTERNAL
+	#define qsort posix_qsort
+	#define getenv posix_getenv
+	#define realpath posix_realpath
+#endif
+
 #endif  // POSIX_STDLIB_H_
 
Index: uspace/lib/posix/string.c
===================================================================
--- uspace/lib/posix/string.c	(revision 2fc50723fdce8fc1637c5e6271d4387af6c0bd98)
+++ uspace/lib/posix/string.c	(revision 4d10fc88cc2193590b10578747c494f294c4ddb1)
@@ -34,4 +34,6 @@
  */
 
+#define LIBPOSIX_INTERNAL
+
 #include "string.h"
 
@@ -39,33 +41,4 @@
 
 #include <str_error.h>
-
-#undef strcpy
-#undef strncpy
-#undef strcat
-#undef strncat
-#undef mempcpy
-#undef strdup
-
-#undef memcmp
-#undef strcmp
-#undef strncmp
-#undef strcasecmp
-#undef strncasecmp
-
-#undef memchr
-#undef rawmemchr
-#undef strchr
-#undef strrchr
-#undef strpbrk
-#undef strcspn
-#undef strspn
-#undef strstr
-
-#undef strcoll
-#undef strxfrm
-
-#undef strerror
-
-#undef strlen
 
 /**
Index: uspace/lib/posix/string.h
===================================================================
--- uspace/lib/posix/string.h	(revision 2fc50723fdce8fc1637c5e6271d4387af6c0bd98)
+++ uspace/lib/posix/string.h	(revision 4d10fc88cc2193590b10578747c494f294c4ddb1)
@@ -79,32 +79,34 @@
 extern size_t posix_strlen(const char *s);
 
-#define strcpy posix_strcpy
-#define strncpy posix_strncpy
-#define strcat posix_strcat
-#define strncat posix_strncat
-#define mempcpy posix_mempcpy
-#define strdup posix_strdup
+#ifndef LIBPOSIX_INTERNAL
+	#define strcpy posix_strcpy
+	#define strncpy posix_strncpy
+	#define strcat posix_strcat
+	#define strncat posix_strncat
+	#define mempcpy posix_mempcpy
+	#define strdup posix_strdup
 
-#define memcmp posix_memcmp
-#define strcmp posix_strcmp
-#define strncmp posix_strncmp
-#define strcasecmp posix_strcasecmp
-#define strncasecmp posix_strncasecmp
+	#define memcmp posix_memcmp
+	#define strcmp posix_strcmp
+	#define strncmp posix_strncmp
+	#define strcasecmp posix_strcasecmp
+	#define strncasecmp posix_strncasecmp
 
-#define memchr posix_memchr
-#define rawmemchr posix_rawmemchr
-#define strchr posix_strchr
-#define strrchr posix_strrchr
-#define strpbrk posix_strpbrk
-#define strcspn posix_strcspn
-#define strspn posix_strspn
-#define strstr posix_strstr
+	#define memchr posix_memchr
+	#define rawmemchr posix_rawmemchr
+	#define strchr posix_strchr
+	#define strrchr posix_strrchr
+	#define strpbrk posix_strpbrk
+	#define strcspn posix_strcspn
+	#define strspn posix_strspn
+	#define strstr posix_strstr
 
-#define strcoll posix_strcoll
-#define strxfrm posix_strxfrm
+	#define strcoll posix_strcoll
+	#define strxfrm posix_strxfrm
 
-#define strerror posix_strerror
+	#define strerror posix_strerror
 
-#define strlen posix_strlen
+	#define strlen posix_strlen
+#endif
 
 #endif  // POSIX_STRING_H_
Index: uspace/lib/posix/time.c
===================================================================
--- uspace/lib/posix/time.c	(revision 2fc50723fdce8fc1637c5e6271d4387af6c0bd98)
+++ uspace/lib/posix/time.c	(revision 4d10fc88cc2193590b10578747c494f294c4ddb1)
@@ -34,13 +34,7 @@
  */
 
+#define LIBPOSIX_INTERNAL
+
 #include "time.h"
-
-#undef tm
-
-#undef localtime
-
-#undef asctime
-#undef ctime
-#undef strftime
 
 /**
Index: uspace/lib/posix/time.h
===================================================================
--- uspace/lib/posix/time.h	(revision 2fc50723fdce8fc1637c5e6271d4387af6c0bd98)
+++ uspace/lib/posix/time.h	(revision 4d10fc88cc2193590b10578747c494f294c4ddb1)
@@ -63,11 +63,13 @@
 extern size_t posix_strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct posix_tm *restrict tm);
 
-#define tm posix_tm
+#ifndef LIBPOSIX_INTERNAL
+	#define tm posix_tm
 
-#define localtime posix_localtime
+	#define localtime posix_localtime
 
-#define asctime posix_asctime
-#define ctime posix_ctime
-#define strftime posix_strftime
+	#define asctime posix_asctime
+	#define ctime posix_ctime
+	#define strftime posix_strftime
+#endif
 
 #endif  // POSIX_TIME_H_
