newer kernel headers stop exporting _syscall#() macro's, so let's insert some workarounds to handle this ... util-linux-2.13 doesnt use _syscall#() anymore http://bugs.gentoo.org/150852 --- lib/my-syscall.h +++ lib/my-syscall.h @@ -0,0 +1,12 @@ +#ifndef __MY_SYSCALL_H__ +#define __MY_SYSCALL_H__ + +#ifndef _syscall5 +# define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ +type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ +{ \ + return (type) syscall(__NR_##name, arg1, arg2, arg3, arg4, arg5); \ +} +#endif + +#endif --- fdisk/llseek.c +++ fdisk/llseek.c @@ -10,6 +10,8 @@ #include #include +#include "my-syscall.h" + extern long long ext2_llseek (unsigned int, long long, unsigned int); #ifdef __linux__ --- fdisk/sfdisk.c +++ fdisk/sfdisk.c @@ -177,6 +177,7 @@ #endif #ifndef use_lseek +#include static __attribute__used _syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo, loff_t *, res, unsigned int, wh); --- partx/partx.c +++ partx/partx.c @@ -339,6 +339,7 @@ #ifdef NEED__llseek #include /* _syscall */ +#include "../lib/my-syscall.h" static _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, long long *, res, uint, wh);