Index: uspace/lib/posix/Makefile
===================================================================
--- uspace/lib/posix/Makefile	(revision b8d4af4b62d44fdc3e0d372290cbf84be3de426e)
+++ uspace/lib/posix/Makefile	(revision 19397becd25f896f19a94f9f6867540d2c59da3d)
@@ -39,4 +39,10 @@
 FIXED_POSIX_LIBRARY = libposixaslibc.a
 FIXED_C_LIBRARY = libc4posix.a
+MERGED_C_LIBRARY = libc.a
+MERGE_LIBRARIES = \
+	$(FIXED_C_LIBRARY) \
+	$(FIXED_POSIX_LIBRARY) \
+	$(LIBSOFTFLOAT_PREFIX)/libsoftfloat.a \
+	$(LIBSOFTINT_PREFIX)/libsoftint.a
 
 REDEFS_HIDE_LIBC = redefs-hide-libc-symbols.list
@@ -47,7 +53,10 @@
 EXTRA_CLEAN = \
 	$(INCLUDE_LIBC) \
-	$(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX) \
-	$(COLLISIONS_LIST)
-EXTRA_OUTPUT = $(FIXED_C_LIBRARY) $(FIXED_POSIX_LIBRARY)
+	$(REDEFS_HIDE_LIBC) \
+	$(REDEFS_SHOW_LIBPOSIX) \
+	$(COLLISIONS_LIST) \
+	libc.o
+
+EXTRA_OUTPUT = $(FIXED_C_LIBRARY) $(FIXED_POSIX_LIBRARY) $(MERGED_C_LIBRARY)
 
 SOURCES = \
@@ -87,5 +96,5 @@
 	ln -s -f -n ../$^ $@
 
-$(FIXED_C_LIBRARY): $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
+$(FIXED_C_LIBRARY): $(LIBC_FILE) $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
 	$(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBC_FILE) $@
 	$(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
@@ -94,4 +103,8 @@
 	$(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBRARY).a $@
 	$(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
+
+$(MERGED_C_LIBRARY): $(MERGE_LIBRARIES)
+	$(LD) --fatal-warnings -r -o libc.o --whole-archive $(MERGE_LIBRARIES) --no-whole-archive
+	$(AR) rc $@ libc.o
 
 $(REDEFS_HIDE_LIBC): $(COLLISIONS_LIST)
