diff options
Diffstat (limited to 'sys-apps/util-linux/files/util-linux-2.12r-no-_syscall.patch')
-rw-r--r-- | sys-apps/util-linux/files/util-linux-2.12r-no-_syscall.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sys-apps/util-linux/files/util-linux-2.12r-no-_syscall.patch b/sys-apps/util-linux/files/util-linux-2.12r-no-_syscall.patch new file mode 100644 index 0000000..fb5ab38 --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.12r-no-_syscall.patch @@ -0,0 +1,53 @@ +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 <errno.h> + #include <unistd.h> + ++#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 <my-syscall.h> + 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 <linux/unistd.h> /* _syscall */ ++#include "../lib/my-syscall.h" + static + _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, + long long *, res, uint, wh); |