tags 294836 patch stop I was able to reproduce bug #294836 on my powerpc system. I was also able to fix it by changing some ifdefs. I combined the patch to fix that with the existing FTBFS patch for bug #393039 and ended up with the attached patch. It should at least increase the number of platforms that gpart works on :)
diff -ru gpart-0.1h/src/l64seek.c gpart-0.1h-new/src/l64seek.c --- gpart-0.1h/src/l64seek.c 2000-12-14 08:54:11.000000000 +1000 +++ gpart-0.1h-new/src/l64seek.c 2006-10-28 04:09:05.000000000 +1000 @@ -25,8 +25,14 @@ } ostck[OSTACKLEN]; static int osptr = -1; -#if defined(__linux__) && defined(__i386__) -_syscall5(int,_llseek,uint,fd,ulong,hi,ulong,lo,loff_t *,res,uint,wh) +#if defined(__linux__) +#include <sys/syscall.h> +# if defined(SYS__llseek) +static int _llseek(uint fd, ulong hi, ulong lo, loff_t *res, uint wh) +{ + return syscall(SYS__llseek, fd, hi, lo, res, wh); +} +# endif #endif @@ -35,7 +41,7 @@ { off64_t ret = (off64_t)-1; -#if defined(__linux__) && defined(__i386__) +#if defined(__linux__) && defined(SYS__llseek) int iret; unsigned long ohi, olo; @@ -44,9 +50,7 @@ iret = _llseek(fd,ohi,olo,&ret,whence); if (iret == -1) ret = (off64_t)-1; -#endif - -#if defined(__FreeBSD__) || (defined(__linux__) && defined(__alpha__)) +#else ret = lseek(fd,offset,whence); #endif
signature.asc
Description: OpenPGP digital signature