summaryrefslogtreecommitdiffstats
path: root/sys-apps/util-linux/files/util-linux-2.12r-no-_syscall.patch
diff options
context:
space:
mode:
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.patch53
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);