* Fix _llseek not being defined in some cases
authorNigel Kukard <nkukard@lbsd.net>
Thu, 17 Apr 2008 13:23:20 +0000 (13:23 -0000)
committerNigel Kukard <nkukard@lbsd.net>
Thu, 17 Apr 2008 13:23:20 +0000 (13:23 -0000)
* Add index & rindex defines if they're not defined either (legacy susv4 functions)

package/sfdisk/sfdisk.005.no-llseek-fix.patch [new file with mode: 0644]
package/sfdisk/sfdisk.010.index-rindex-fix.patch [new file with mode: 0644]

diff --git a/package/sfdisk/sfdisk.005.no-llseek-fix.patch b/package/sfdisk/sfdisk.005.no-llseek-fix.patch
new file mode 100644 (file)
index 0000000..4ea571c
--- /dev/null
@@ -0,0 +1,21 @@
+diff -ur sfdisk_vanilla/sfdisk.c sfdisk_llseek-fix/sfdisk.c
+--- sfdisk_vanilla/sfdisk.c    2004-01-13 13:03:11.000000000 +0000
++++ sfdisk_llseek-fix/sfdisk.c 2008-04-17 08:42:35.000000000 +0000
+@@ -134,9 +137,17 @@
+  * Note: we use 512-byte sectors here, irrespective of the hardware ss.
+  */
+ #if defined(__linux__) && !defined (__alpha__) && !defined (__ia64__) && !defined (__x86_64__) && !defined (__s390x__)
++#if defined(_llseek)
+ static
+ _syscall5(int,  _llseek,  unsigned int,  fd, ulong, hi, ulong, lo,
+        loff_t *, res, unsigned int, wh);
++#else
++static int _llseek (unsigned int fd, unsigned long oh,
++              unsigned long ol, long long *result,
++              unsigned int origin) {
++      return syscall (__NR__llseek, fd, oh, ol, result, origin);
++#endif
++}
+ #endif
+ static int
diff --git a/package/sfdisk/sfdisk.010.index-rindex-fix.patch b/package/sfdisk/sfdisk.010.index-rindex-fix.patch
new file mode 100644 (file)
index 0000000..0eb15af
--- /dev/null
@@ -0,0 +1,21 @@
+diff -ru sfdisk_llseek-fix/sfdisk.c sfdisk_index-rindex-fix/sfdisk.c
+--- sfdisk_llseek-fix/sfdisk.c 2008-04-17 08:42:35.000000000 +0000
++++ sfdisk_index-rindex-fix/sfdisk.c   2008-04-17 09:50:17.000000000 +0000
+@@ -58,6 +58,17 @@
+ #define SIZE(a)       (sizeof(a)/sizeof(a[0]))
++/* 
++ * Why these wouldn't be defined in string.h, I don't know, there is a block
++ * testing for BSD, and no other mention of these functions ... NK
++ */
++#if !defined(index)
++#  define index(s,c) strchr((s), (c))
++#endif
++#if !defined(rindex)
++#  define rindex(s,c) strrchr((s), (c))
++#endif
++
+ /*
+  * Table of contents:
+  *  A. About seeking