public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Jan Stancek <jstancek@redhat.com>
To: Hangbin Liu <liuhangbin@gmail.com>
Cc: LTP List <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH] containers: Use raw setns syscall for versions of	glibc that don't include it
Date: Tue, 30 Jun 2015 02:55:50 -0400 (EDT)	[thread overview]
Message-ID: <1697537616.10369628.1435647350988.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <1435645125-5434-1-git-send-email-liuhangbin@gmail.com>





----- Original Message -----
> From: "Hangbin Liu" <liuhangbin@gmail.com>
> To: "LTP List" <ltp-list@lists.sourceforge.net>
> Sent: Tuesday, 30 June, 2015 8:18:45 AM
> Subject: [LTP] [PATCH] containers: Use raw setns syscall for versions of	glibc that don't include it
> 
> 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 <liuhangbin@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
> +

This will still fail if SYS_setns is not defined.

We have ltp_syscall and "linux_syscall_numbers.h", which can guaruantee
that __NR_setns will be defined and ltp_syscall will break with TCONF
in case you get ENOSYS.

So if you add dummy call to setns in setup():
  ltp_syscall(__NR_setns, -1, 0);
you can stop the testcase quite early with TCONF if setns is not supported.

Regards,
Jan

>  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
> 

------------------------------------------------------------------------------
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	other threads:[~2015-06-30  6:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-30  6:18 [LTP] [PATCH] containers: Use raw setns syscall for versions of glibc that don't include it Hangbin Liu
2015-06-30  6:55 ` Jan Stancek [this message]
  -- strict thread matches above, loose matches on Subject: below --
2015-07-01  3:33 Hangbin Liu
2015-07-14  9:31 ` Cyril Hrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1697537616.10369628.1435647350988.JavaMail.zimbra@redhat.com \
    --to=jstancek@redhat.com \
    --cc=liuhangbin@gmail.com \
    --cc=ltp-list@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox