Cross Compile fixes: The sanitized kernel headers use __u32 and __u64 let us define those. Index: nbd-2.8.7/configure.ac =================================================================== --- nbd-2.8.7.orig/configure.ac 2006-10-17 19:42:11.000000000 +0200 +++ nbd-2.8.7/configure.ac 2007-01-19 14:19:09.000000000 +0100 @@ -68,15 +68,16 @@ man8_MANS=nbd-client.8 AC_MSG_RESULT(yes) ;; - *) AC_MSG_RESULT(no) ;; + dnl uname is a pretty stupid idea... we could be on freeBSD,OS X... + *) AC_MSG_RESULT(yes) ;; esac AC_MSG_CHECKING(where to find a working nbd.h) dnl We need to check for NBD_CMD_DISC, but that's part of an enum, it is not dnl #define'd. Therefore, we check for something which is differently #define'd dnl in the old or new versions, even if we don't really care about that. dnl This might break at some time, but it should work for now, so... -AC_TRY_COMPILE([#define u32 int -#define u64 int +AC_TRY_COMPILE([#define __u32 int +#define __u64 int #define __be32 int #define __be64 int #include "nbd.h" Index: nbd-2.8.7/cliserv.h =================================================================== --- nbd-2.8.7.orig/cliserv.h 2006-10-17 19:29:12.000000000 +0200 +++ nbd-2.8.7/cliserv.h 2007-01-19 14:17:15.000000000 +0100 @@ -17,20 +17,26 @@ #if SIZEOF_UNSIGNED_SHORT_INT==4 typedef unsigned short u32; +typedef unsigned short __u32; #elif SIZEOF_UNSIGNED_INT==4 typedef unsigned int u32; +typedef unsigned int __u32; #elif SIZEOF_UNSIGNED_LONG_INT==4 typedef unsigned long u32; +typedef unsigned long __u32; #else #error I need at least some 32-bit type #endif #if SIZEOF_UNSIGNED_INT==8 typedef unsigned int u64; +typedef unsigned int __u64; #elif SIZEOF_UNSIGNED_LONG_INT==8 typedef unsigned long u64; +typedef unsigned long __u64; #elif SIZEOF_UNSIGNED_LONG_LONG_INT==8 typedef unsigned long long u64; +typedef unsigned long long __u64; #else #error I need at least some 64-bit type #endif