dosfstools: merge 2.6.20 syscalls patch from Poky
authorMarcin Juszkiewicz <hrw@openembedded.org>
Tue, 8 Apr 2008 11:57:58 +0000 (11:57 +0000)
committerMarcin Juszkiewicz <hrw@openembedded.org>
Tue, 8 Apr 2008 11:57:58 +0000 (11:57 +0000)
packages/dosfstools/dosfstools-native_2.10.bb
packages/dosfstools/files/2.6.20-syscall.patch [new file with mode: 0644]

index 6270991..1fbbe37 100644 (file)
@@ -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 (file)
index 0000000..7cf2662
--- /dev/null
@@ -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