On RHEL6.6, the kernel support setns syscall, but glibc(2.12) does not support
this syscall. Thus ltp build failed with "userns04.c:58: undefined reference
to `setns'". Use raw setns syscall to make ltp build pass.

Signed-off-by: Hangbin Liu <liuhang...@gmail.com>
---
 testcases/kernel/containers/userns/userns_helper.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/testcases/kernel/containers/userns/userns_helper.h 
b/testcases/kernel/containers/userns/userns_helper.h
index da03bae..9107886 100644
--- a/testcases/kernel/containers/userns/userns_helper.h
+++ b/testcases/kernel/containers/userns/userns_helper.h
@@ -15,6 +15,19 @@
 #include "test.h"
 #include "safe_macros.h"
 
+/*
+ * Use raw setns syscall for versions of glibc that don't include it (namely
+ * glibc-2.12)
+ */
+#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 14
+#ifdef SYS_setns
+int setns(int fd, int nstype)
+{
+       return syscall(SYS_setns, fd, nstype);
+}
+#endif
+#endif
+
 static int dummy_child(void *v)
 {
        (void) v;
-- 
1.9.3


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to