summaryrefslogtreecommitdiff
path: root/packages/nbd/files/cross-compile.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/nbd/files/cross-compile.patch')
-rw-r--r--packages/nbd/files/cross-compile.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/packages/nbd/files/cross-compile.patch b/packages/nbd/files/cross-compile.patch
new file mode 100644
index 0000000000..654a3d7a48
--- /dev/null
+++ b/packages/nbd/files/cross-compile.patch
@@ -0,0 +1,61 @@
+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 <linux/nbd.h>
+ ],
+ [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