Index: uspace/lib/c/Makefile
===================================================================
--- uspace/lib/c/Makefile	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/Makefile	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -35,11 +35,14 @@
 INCLUDE_LIBARCH = include/libarch
 
-PRE_DEPEND = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH)
+COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common
+COMMON_HEADER = $(ROOT_PATH)/common.h
+COMMON_HEADER_ARCH = arch/$(UARCH)/include/common.h
+
+CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
+
+PRE_DEPEND = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(COMMON_HEADER_ARCH)
 EXTRA_OUTPUT = $(LINKER_SCRIPT)
-EXTRA_CLEAN = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(LINKER_SCRIPT)
+EXTRA_CLEAN = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(COMMON_HEADER_ARCH) $(LINKER_SCRIPT)
 LIBRARY = libc
-
-COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common
-CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
 
 -include $(COMMON_MAKEFILE)
@@ -112,2 +115,5 @@
 $(LINKER_SCRIPT): $(LINKER_SCRIPT).in
 	$(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -E -x c $< | grep -v "^\#" > $@
+
+$(COMMON_HEADER_ARCH): $(COMMON_HEADER)
+	ln -sfn ../../../$< $@
Index: uspace/lib/c/arch/abs32le/include/types.h
===================================================================
--- uspace/lib/c/arch/abs32le/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/abs32le/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -38,15 +38,7 @@
 #define __32_BITS__
 
-typedef unsigned int sysarg_t;
+#include <libarch/common.h>
 
-typedef char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long int uint64_t;
+typedef uint32_t sysarg_t;
 
 typedef int32_t ssize_t;
Index: uspace/lib/c/arch/amd64/include/types.h
===================================================================
--- uspace/lib/c/arch/amd64/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/amd64/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -38,15 +38,7 @@
 #define __64_BITS__
 
-typedef unsigned long long sysarg_t;
+#include <libarch/common.h>
 
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long int uint64_t;
+typedef uint64_t sysarg_t;
 
 typedef int64_t ssize_t;
Index: uspace/lib/c/arch/arm32/include/types.h
===================================================================
--- uspace/lib/c/arch/arm32/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/arm32/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -27,8 +27,8 @@
  */
 
-/** @addtogroup libcarm32	
+/** @addtogroup libcarm32
  * @{
  */
-/** @file 
+/** @file
  *  @brief Definitions of basic types like #uintptr_t.
  */
@@ -39,15 +39,7 @@
 #define __32_BITS__
 
-typedef unsigned int sysarg_t;
+#include <libarch/common.h>
 
-typedef char int8_t;
-typedef short int int16_t;
-typedef long int int32_t;
-typedef long long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned long int uint32_t;
-typedef unsigned long long int uint64_t;
+typedef uint32_t sysarg_t;
 
 typedef int32_t ssize_t;
Index: uspace/lib/c/arch/ia32/include/types.h
===================================================================
--- uspace/lib/c/arch/ia32/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/ia32/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -38,15 +38,7 @@
 #define __32_BITS__
 
-typedef unsigned int sysarg_t;
+#include <libarch/common.h>
 
-typedef char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long int uint64_t;
+typedef uint32_t sysarg_t;
 
 typedef int32_t ssize_t;
Index: uspace/lib/c/arch/ia64/include/types.h
===================================================================
--- uspace/lib/c/arch/ia64/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/ia64/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -38,20 +38,7 @@
 #define __64_BITS__
 
-typedef unsigned long sysarg_t;
+#include <libarch/common.h>
 
-typedef char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long int uint64_t;
-
-typedef struct {
-	uint64_t lo;
-	uint64_t hi;
-} uint128_t;
+typedef uint64_t sysarg_t;
 
 typedef int64_t ssize_t;
Index: uspace/lib/c/arch/mips32/include/types.h
===================================================================
--- uspace/lib/c/arch/mips32/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/mips32/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -39,15 +39,7 @@
 #define __32_BITS__
 
-typedef unsigned int sysarg_t;
+#include <libarch/common.h>
 
-typedef char int8_t;
-typedef short int int16_t;
-typedef long int int32_t;
-typedef long long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned long int uint32_t;
-typedef unsigned long long int uint64_t;
+typedef uint32_t sysarg_t;
 
 typedef int32_t ssize_t;
Index: uspace/lib/c/arch/ppc32/include/types.h
===================================================================
--- uspace/lib/c/arch/ppc32/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/ppc32/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -38,15 +38,7 @@
 #define __32_BITS__
 
-typedef unsigned int sysarg_t;
+#include <libarch/common.h>
 
-typedef char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long int uint64_t;
+typedef uint32_t sysarg_t;
 
 typedef int32_t ssize_t;
Index: uspace/lib/c/arch/sparc64/include/types.h
===================================================================
--- uspace/lib/c/arch/sparc64/include/types.h	(revision a1caa3c27369ee7de11fef02f3fe402749662c37)
+++ uspace/lib/c/arch/sparc64/include/types.h	(revision 41963042778157d86a3ab7cffe9897ece175627a)
@@ -38,15 +38,7 @@
 #define __64_BITS__
 
-typedef unsigned long sysarg_t;
+#include <libarch/common.h>
 
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long int int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long int uint64_t;
+typedef uint64_t sysarg_t;
 
 typedef int64_t ssize_t;
