fix fdisk llseek
[openwrt/svn-archive/archive.git] / package / util-linux / patches / 100-llseek.patch
1 diff -ur util-linux.old/fdisk/llseek.c util-linux.dev/fdisk/llseek.c
2 --- util-linux.old/fdisk/llseek.c 2003-07-13 23:13:33.000000000 +0200
3 +++ util-linux.dev/fdisk/llseek.c 2006-12-14 23:06:12.000000000 +0100
4 @@ -29,13 +29,7 @@
5 static int _llseek (unsigned int, unsigned long,
6 unsigned long, long long *, unsigned int);
7
8 -#ifdef __NR__llseek
9 -
10 -static _syscall5(int,_llseek,unsigned int,fd,unsigned long,offset_high,
11 - unsigned long, offset_low,long long *,result,
12 - unsigned int, origin)
13 -
14 -#else
15 +#ifndef __NR__llseek
16
17 /* no __NR__llseek on compilation machine - might give it explicitly */
18 static int _llseek (unsigned int fd, unsigned long oh,
19 diff -ur util-linux.old/fdisk/sfdisk.c util-linux.dev/fdisk/sfdisk.c
20 --- util-linux.old/fdisk/sfdisk.c 2005-01-04 23:31:57.000000000 +0100
21 +++ util-linux.dev/fdisk/sfdisk.c 2006-12-14 23:05:41.000000000 +0100
22 @@ -176,12 +176,6 @@
23 #define use_lseek
24 #endif
25
26 -#ifndef use_lseek
27 -static __attribute__used
28 -_syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo,
29 - loff_t *, res, unsigned int, wh);
30 -#endif
31 -
32 static int
33 sseek(char *dev, unsigned int fd, unsigned long s) {
34 loff_t in, out;
35 diff -ur util-linux.old/partx/partx.c util-linux.dev/partx/partx.c
36 --- util-linux.old/partx/partx.c 2004-08-23 22:13:27.000000000 +0200
37 +++ util-linux.dev/partx/partx.c 2006-12-14 23:06:42.000000000 +0100
38 @@ -339,9 +339,6 @@
39
40 #ifdef NEED__llseek
41 #include <linux/unistd.h> /* _syscall */
42 -static
43 -_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo,
44 - long long *, res, uint, wh);
45 #endif
46
47 static int
48 diff -ur util-linux.old/fdisk/llseek.c util-linux.dev/fdisk/llseek.c
49 --- util-linux.old/fdisk/llseek.c 2007-01-20 15:53:17.870636000 +0100
50 +++ util-linux.dev/fdisk/llseek.c 2007-01-20 15:55:33.458024160 +0100
51 @@ -32,7 +32,7 @@
52 #ifndef __NR__llseek
53
54 /* no __NR__llseek on compilation machine - might give it explicitly */
55 -static int _llseek (unsigned int fd, unsigned long oh,
56 +static int __llseek (unsigned int fd, unsigned long oh,
57 unsigned long ol, long long *result,
58 unsigned int origin) {
59 errno = ENOSYS;
60 @@ -41,17 +41,8 @@
61
62 #endif
63
64 -static long long my_llseek (unsigned int fd, long long offset,
65 - unsigned int origin)
66 -{
67 - long long result;
68 - int retval;
69 -
70 - retval = _llseek (fd, ((unsigned long long) offset) >> 32,
71 - ((unsigned long long) offset) & 0xffffffff,
72 - &result, origin);
73 - return (retval == -1 ? (long long) retval : result);
74 -}
75 +extern long long llseek(unsigned int fd, long long offset, unsigned int origin);
76 +#define my_llseek llseek
77
78 #endif /* __alpha__ */
79