sys-apps/systemd: Backport build fix for IA64
authorMike Gilbert <floppym@gentoo.org>
Sat, 12 Dec 2015 15:16:23 +0000 (10:16 -0500)
committerMike Gilbert <floppym@gentoo.org>
Sat, 12 Dec 2015 15:16:37 +0000 (10:16 -0500)
Bug: https://bugs.gentoo.org/560492

Package-Manager: portage-2.2.26_p25

sys-apps/systemd/files/226-kcmp.patch [new file with mode: 0644]
sys-apps/systemd/systemd-226-r2.ebuild

diff --git a/sys-apps/systemd/files/226-kcmp.patch b/sys-apps/systemd/files/226-kcmp.patch
new file mode 100644 (file)
index 0000000..a91f49f
--- /dev/null
@@ -0,0 +1,31 @@
+From 75b554579b4e962e2c02053129a37611a2dc9133 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Mon, 14 Sep 2015 18:55:09 -0400
+Subject: [PATCH] Add fallback for kcmp() in case __NR_kcmp is undefined
+
+IA64 is missing this syscall as of linux-4.2.
+This works around it until the necessary kernel patch gets merged.
+---
+ src/basic/missing.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/basic/missing.h b/src/basic/missing.h
+index dc1f244..371ef8a 100644
+--- a/src/basic/missing.h
++++ b/src/basic/missing.h
+@@ -1028,7 +1028,12 @@ static inline int renameat2(int oldfd, const char *oldname, int newfd, const cha
+ 
+ #if !HAVE_DECL_KCMP
+ static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) {
++#if defined(__NR_kcmp)
+         return syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
++#else
++        errno = ENOSYS;
++        return -1;
++#endif
+ }
+ #endif
+ 
+-- 
+2.6.4
+
index 10471ac5466f6130c48b4197ab5ee34437c22cce..44742e88e6f16fcc5be49022b8ca9956022a4732 100644 (file)
@@ -147,6 +147,7 @@ src_prepare() {
        epatch "${FILESDIR}/218-Dont-enable-audit-by-default.patch"
        epatch "${FILESDIR}/226-noclean-tmp.patch"
        epatch "${FILESDIR}/CVE-2015-7510.patch"
+       epatch "${FILESDIR}/226-kcmp.patch"
        epatch_user
        eautoreconf
 }