diff -urN glibc-2.10.1-orig/posix/sys/types.h glibc-2.10.1/posix/sys/types.h
--- glibc-2.10.1-orig/posix/sys/types.h	2010-12-13 11:47:26.000000000 +0100
+++ glibc-2.10.1/posix/sys/types.h	2011-03-29 14:16:00.374064708 +0200
@@ -114,7 +114,10 @@
 #ifdef	__USE_BSD
 # ifndef __daddr_t_defined
 typedef __daddr_t daddr_t;
+#  if ! defined(caddr_t) && ! defined(__caddr_t_defined)
 typedef __caddr_t caddr_t;
+#   define __caddr_t_defined
+#  endif
 #  define __daddr_t_defined
 # endif
 #endif
diff -urN glibc-2.10.1-orig/sunrpc/rpc/types.h glibc-2.10.1/sunrpc/rpc/types.h
--- glibc-2.10.1-orig/sunrpc/rpc/types.h	2010-12-13 11:47:26.000000000 +0100
+++ glibc-2.10.1/sunrpc/rpc/types.h	2011-03-29 14:16:32.988910439 +0200
@@ -80,7 +80,10 @@
 #endif
 #ifndef __daddr_t_defined
 typedef __daddr_t daddr_t;
+# if ! defined(caddr_t) && ! defined(__caddr_t_defined)
 typedef __caddr_t caddr_t;
+#  define __caddr_t_defined
+# endif
 # define __daddr_t_defined
 #endif
 
