[meta-virtualization] [PATCH 1/2] criu: fix build failure with newer glibc and kernel

Bruce Ashfield bruce.ashfield at windriver.com
Fri Apr 13 12:54:16 PDT 2018


merged

Bruce

On 2018-04-12 10:50 PM, Yi Zhao wrote:
> With newer glibc(>= 2.26) and kernel(>=4.14), criu would fail to build:
> 
> In file included from
> /buildarea/build/tmp/work/core2-64-poky-linux/criu/3.4+gitAUTOINC+a31c1854e1-r0/recipe-sysroot/usr/include/linux/aio_abi.h:31:0,
>          from criu/cr-check.c:24:
> /buildarea/build/tmp/work/core2-64-poky-linux/criu/3.4+gitAUTOINC+a31c1854e1-r0/recipe-sysroot/usr/include/sys/mount.h:35:3:
> error: expected identifier before numeric constant
>     MS_RDONLY = 1,  /* Mount read-only.  */
>     ^
>    CC       criu/parasite-syscall.o
>    CC       criu/pipes.o
>    CC       criu/pie-util.o
>    CC       criu/pie-util-vdso.o
>    CC       criu/plugin.o
> /buildarea/build/tmp/work/core2-64-poky-linux/criu/3.4+gitAUTOINC+a31c1854e1-r0/git/scripts/nmk/scripts/build.mk:110:
> recipe for target 'criu/cr-check.o' failed
> make[2]: *** [criu/cr-check.o] Error 1
> 
> Backport a patch to fix it.
> 
> Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> ---
>   recipes-containers/criu/criu_git.bb                |  1 +
>   .../fix-building-on-newest-glibc-and-kernel.patch  | 47 ++++++++++++++++++++++
>   2 files changed, 48 insertions(+)
>   create mode 100644 recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch
> 
> diff --git a/recipes-containers/criu/criu_git.bb b/recipes-containers/criu/criu_git.bb
> index 083609f..7d62f35 100644
> --- a/recipes-containers/criu/criu_git.bb
> +++ b/recipes-containers/criu/criu_git.bb
> @@ -21,6 +21,7 @@ SRC_URI = "git://github.com/xemul/criu.git;protocol=git \
>              file://0002-criu-Skip-documentation-install.patch \
>              file://0001-criu-Change-libraries-install-directory.patch \
>              file://lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch \
> +           file://fix-building-on-newest-glibc-and-kernel.patch \
>             "
>   
>   COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
> diff --git a/recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch b/recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch
> new file mode 100644
> index 0000000..d6341da
> --- /dev/null
> +++ b/recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch
> @@ -0,0 +1,47 @@
> +From f41e386d4d40e3e26b0cfdc85a812b7edb337f1d Mon Sep 17 00:00:00 2001
> +From: Adrian Reber <areber at redhat.com>
> +Date: Thu, 28 Sep 2017 09:13:33 +0000
> +Subject: [PATCH] fix building on newest glibc and kernel
> +
> +On Fedora rawhide with kernel-headers-4.14.0-0.rc2.git0.1.fc28.x86_64
> +glibc-devel-2.26.90-15.fc28.x86_64 criu does not build any more:
> +
> +In file included from /usr/include/linux/aio_abi.h:31:0,
> +                 from criu/cr-check.c:24:
> +/usr/include/sys/mount.h:35:3: error: expected identifier before numeric constant
> +   MS_RDONLY = 1,  /* Mount read-only.  */
> +   ^
> +make[2]: *** [/builddir/build/BUILD/criu-3.5/scripts/nmk/scripts/build.mk:111: criu/cr-check.o] Error 1
> +make[1]: *** [criu/Makefile:73: criu/built-in.o] Error 2
> +make: *** [Makefile:233: criu] Error 2
> +
> +This simple re-ordering of includes fixes it for me.
> +
> +Signed-off-by: Adrian Reber <areber at redhat.com>
> +Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
> +
> +Upstream-Status: Backport
> +[https://github.com/checkpoint-restore/criu/commit/f41e386d4d40e3e26b0cfdc85a812b7edb337f1d#diff-cc847b1cc975358c6582595be92d48db]
> +
> +Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> +---
> + criu/cr-check.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/criu/cr-check.c b/criu/cr-check.c
> +index 5dd448b..8986ec4 100644
> +--- a/criu/cr-check.c
> ++++ b/criu/cr-check.c
> +@@ -21,8 +21,8 @@
> + #include <netinet/in.h>
> + #include <sys/prctl.h>
> + #include <sched.h>
> +-#include <linux/aio_abi.h>
> + #include <sys/mount.h>
> ++#include <linux/aio_abi.h>
> +
> + #include "../soccr/soccr.h"
> +
> +--
> +2.7.4
> +
> 



More information about the meta-virtualization mailing list