Cross Compile fixes: The sanitized kernel headers use __u32 and __u64 let us define those. Index: nbd-2.8.4/configure.ac =================================================================== --- nbd-2.8.4.orig/configure.ac 2006-02-26 15:52:03.000000000 +0100 +++ nbd-2.8.4/configure.ac 2006-05-25 21:35:26.000000000 +0200 @@ -68,7 +68,8 @@ 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 @@ -82,8 +83,8 @@ [int foo=NBD_CMD_DISC], [AC_DEFINE(NBD_H_LOCAL, 1, Set to 1 if a (kernel 2.6) nbd.h can be found in the current directory) NBD_H='"nbd.h"'], - AC_TRY_COMPILE([#define u32 int -#define u64 int + AC_TRY_COMPILE([#define __u32 int +#define __u64 int #include ], [int foo=NBD_CMD_DISC], Index: nbd-2.8.4/cliserv.h =================================================================== --- nbd-2.8.4.orig/cliserv.h 2006-01-06 18:02:03.000000000 +0100 +++ nbd-2.8.4/cliserv.h 2006-05-25 21:41:25.000000000 +0200 @@ -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