[OE-core] [PATCH 3/3] util-linux-native: Remove SYS_setns system call in linux kernel 2.6.x

Richard Purdie richard.purdie at linuxfoundation.org
Tue Apr 1 10:15:02 UTC 2014


On Tue, 2014-04-01 at 17:09 +0800, Kai Kang wrote:
> From: "yanjun.zhu" <yanjun.zhu at windriver.com>
> 
> __NR_setns is not defined in linux kernel 2.6.x. To linux kernel 3.0,
> this variable is defined. It has been shown that no native tools use
> this syscall, so it is safe to make this substitution
> 
> Signed-off-by: yanjun.zhu <yanjun.zhu at windriver.com>
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> Signed-off-by: Kai Kang <kai.kang at windriver.com>
> ---
>  meta/recipes-core/util-linux/util-linux.inc | 6 ++++++
>  1 file changed, 6 insertions(+)

This is horrible. Firstly "no native tools use this syscall" - how did
you check that? I suspect you perhaps mean "no native tools in OE-Core
at this time"? How would we know when one is added?

Secondly, this should not be done as a sed, it should be a patch with a
description. This means when we upgrade util-linux, it doesn't silently
stop working or do something unintended.

Cheers,

Richard

> diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc
> index ad7aac7..0f065b4 100644
> --- a/meta/recipes-core/util-linux/util-linux.inc
> +++ b/meta/recipes-core/util-linux/util-linux.inc
> @@ -112,6 +112,12 @@ RPROVIDES_${PN}-dev = "util-linux-libblkid-dev util-linux-libmount-dev util-linu
>  SYSTEMD_PACKAGES = "${PN}-uuidd"
>  SYSTEMD_SERVICE_${PN}-uuidd = "uuidd.service"
>  
> +do_compile_prepend_class-native() {
> +	if [ `uname -r | grep "2.6."` ]; then
> +		sed -i 's:return syscall(SYS_setns:fprintf(stderr,"Kernel does not support setns");\n\treturn 1;\n//return syscall(:g' ${S}/include/namespace.h
> +	fi
> +}
> +
>  do_compile () {
>  	set -e
>  	install ${WORKDIR}/MCONFIG ${S}/MCONFIG
> -- 
> 1.8.1.2
> 





More information about the Openembedded-core mailing list