summaryrefslogtreecommitdiff
path: root/recipes/nbd/files/cross-compile.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/nbd/files/cross-compile.patch')
-rw-r--r--recipes/nbd/files/cross-compile.patch60
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