summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openembedded.org>2008-04-08 11:57:58 +0000
committerMarcin Juszkiewicz <hrw@openembedded.org>2008-04-08 11:57:58 +0000
commitb072e75502fa5d6467579a4f8d13b87fc6e49942 (patch)
tree592f2e4f48ed94d5aec194a07a320162f24d4959
parent1dc00eb81a2d185d0d78a67077dddef717399cd9 (diff)
dosfstools: merge 2.6.20 syscalls patch from Poky
-rw-r--r--packages/dosfstools/dosfstools-native_2.10.bb5
-rw-r--r--packages/dosfstools/files/2.6.20-syscall.patch65
2 files changed, 68 insertions, 2 deletions
diff --git a/packages/dosfstools/dosfstools-native_2.10.bb b/packages/dosfstools/dosfstools-native_2.10.bb
index 62709916fc..1fbbe37c76 100644
--- a/packages/dosfstools/dosfstools-native_2.10.bb
+++ b/packages/dosfstools/dosfstools-native_2.10.bb
@@ -7,7 +7,7 @@ FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dosfstools-${PV}"
S="${WORKDIR}/dosfstools-${PV}"
-PR="r3"
+PR="r4"
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
file://mkdosfs-bootcode.patch;patch=1 \
@@ -16,7 +16,8 @@ SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}
file://dosfstools-2.10-kernel-2.6.patch;patch=1 \
file://msdos_fat12_undefined.patch;patch=1 \
file://dosfstools-msdos_fs-types.patch;patch=1 \
- file://include-linux-types.patch;patch=1"
+ file://include-linux-types.patch;patch=1 \
+ file://2.6.20-syscall.patch;patch=1"
inherit native
diff --git a/packages/dosfstools/files/2.6.20-syscall.patch b/packages/dosfstools/files/2.6.20-syscall.patch
new file mode 100644
index 0000000000..7cf2662d27
--- /dev/null
+++ b/packages/dosfstools/files/2.6.20-syscall.patch
@@ -0,0 +1,65 @@
+Index: dosfstools-2.10/dosfsck/io.c
+===================================================================
+--- dosfstools-2.10.orig/dosfsck/io.c 2007-06-07 16:15:52.000000000 +0200
++++ dosfstools-2.10/dosfsck/io.c 2007-06-07 16:16:06.000000000 +0200
+@@ -42,28 +42,11 @@
+ /* Use the _llseek system call directly, because there (once?) was a bug in
+ * the glibc implementation of it. */
+ #include <linux/unistd.h>
+-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
+ /* On alpha, the syscall is simply lseek, because it's a 64 bit system. */
+ static loff_t llseek( int fd, loff_t offset, int whence )
+ {
+ return lseek(fd, offset, whence);
+ }
+-#else
+-# ifndef __NR__llseek
+-# error _llseek system call not present
+-# endif
+-static _syscall5( int, _llseek, uint, fd, ulong, hi, ulong, lo,
+- loff_t *, res, uint, wh );
+-
+-static loff_t llseek( int fd, loff_t offset, int whence )
+-{
+- loff_t actual;
+-
+- if (_llseek(fd, offset>>32, offset&0xffffffff, &actual, whence) != 0)
+- return (loff_t)-1;
+- return actual;
+-}
+-#endif
+
+
+ void fs_open(char *path,int rw)
+Index: dosfstools-2.10/mkdosfs/mkdosfs.c
+===================================================================
+--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2007-06-07 16:15:11.000000000 +0200
++++ dosfstools-2.10/mkdosfs/mkdosfs.c 2007-06-07 16:15:30.000000000 +0200
+@@ -116,27 +116,11 @@
+ /* Use the _llseek system call directly, because there (once?) was a bug in
+ * the glibc implementation of it. */
+ #include <linux/unistd.h>
+-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
+ /* On alpha, the syscall is simply lseek, because it's a 64 bit system. */
+ static loff_t llseek( int fd, loff_t offset, int whence )
+ {
+ return lseek(fd, offset, whence);
+ }
+-#else
+-# ifndef __NR__llseek
+-# error _llseek system call not present
+-# endif
+-static _syscall5( int, _llseek, uint, fd, ulong, hi, ulong, lo,
+- loff_t *, res, uint, wh );
+-static loff_t llseek( int fd, loff_t offset, int whence )
+-{
+- loff_t actual;
+-
+- if (_llseek(fd, offset>>32, offset&0xffffffff, &actual, whence) != 0)
+- return (loff_t)-1;
+- return actual;
+-}
+-#endif
+
+ #define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor
+