diff options
Diffstat (limited to 'recipes/nbd/files/cross-compile.patch')
-rw-r--r-- | recipes/nbd/files/cross-compile.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/recipes/nbd/files/cross-compile.patch b/recipes/nbd/files/cross-compile.patch new file mode 100644 index 0000000000..1d0a135bb9 --- /dev/null +++ b/recipes/nbd/files/cross-compile.patch @@ -0,0 +1,60 @@ +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 |