[CRIU] [Announce] CRIU 3.5 "Clay Jay" is out

Adrian Reber adrian at lisas.de
Thu Sep 28 16:47:20 MSK 2017


On Thu, Sep 28, 2017 at 04:40:22PM +0300, Pavel Emelyanov wrote:
> On 09/28/2017 02:16 PM, Adrian Reber wrote:
> > On Thu, Sep 28, 2017 at 11:19:20AM +0200, Adrian Reber wrote:
> >> On Wed, Sep 27, 2017 at 03:35:02PM +0300, Pavel Emelyanov wrote:
> >>> Please, join me in honoring Mike and Adrian for lazy restore and Dima for VDSO rework!
> >>> Both features are finally released and ... are ready to get fixed :)
> >>>
> >>> Full changelog is https://criu.org/Download/criu/3.5
> >>> Sources http://download.openvz.org/criu/criu-3.5.tar.bz2
> >>>
> >>> Have fun!
> >>
> >> I already had fun with this release ;-) It does not build on any
> >> architecture on Fedora's development branch rawhide:
> >>
> >> 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
> >>
> >> See the attached patch for a simple fix.
> > 
> > And one more failure on aarch64:
> > 
> > In file included from compel/include/uapi/compel/infect.h:6:0,
> >                  from compel/include/uapi/compel/compel.h:12,
> >                  from compel/include/log.h:4,
> >                  from compel/arch/aarch64/src/lib/infect.c:8:
> > compel/arch/aarch64/src/lib/infect.c: In function 'sigreturn_prep_regs_plain':
> > compel/include/uapi/compel/asm/sigframe.h:47:99: error: 'mcontext_t {aka struct <anonymous>}' has no member named '__reserved'; did you mean '__glibc_reserved1'?
> >  #define RT_SIGFRAME_AUX_CONTEXT(rt_sigframe) ((struct aux_context*)&(rt_sigframe)->uc.uc_mcontext.__reserved)
> >                                                                                                    ^
> > compel/include/uapi/compel/asm/sigframe.h:48:41: note: in expansion of macro 'RT_SIGFRAME_AUX_CONTEXT'
> >  #define RT_SIGFRAME_FPU(rt_sigframe)  (&RT_SIGFRAME_AUX_CONTEXT(rt_sigframe)->fpsimd)
> >                                          ^~~~~~~~~~~~~~~~~~~~~~~
> > compel/arch/aarch64/src/lib/infect.c:34:34: note: in expansion of macro 'RT_SIGFRAME_FPU'
> >   struct fpsimd_context *fpsimd = RT_SIGFRAME_FPU(sigframe);
> >                                   ^~~~~~~~~~~~~~~
> > make[1]: *** [/builddir/build/BUILD/criu-3.5/scripts/nmk/scripts/build.mk:209: compel/arch/aarch64/src/lib/infect.o] Error 1
> > make: *** [Makefile.compel:36: compel/libcompel.a] Error 2
> > error: Bad exit status from /var/tmp/rpm-tmp.IExY9K (%build)
> > 
> > This seems to be related to the following glibc changes:
> > 
> > https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4fa9b3bfe6759c82beb4b043a54a3598ca467289
> 
> 
> >From the changelog:
>    Use __glibc_reserved1 instead of __reserved.
> 
> And it's not a macro, so we cannot check it with #ifdef :\ IIRC we've seen smth like that
> before, again with uc_mcontext.

Yes, see my commit:

commit f2899a728cf2baf79655b5b2559f826af7c8452d
Author: Adrian Reber <areber at redhat.com>
Date:   Thu Jul 20 12:08:34 2017 -0400

    compel/aarch64: glibc renamed ucontext to ucontext_t
    
    The upcoming glibc release renamed 'struct ucontext' to
    'struct ucontext_t':
    
    https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=251287734e89a52da3db682a8241eb6bccc050c9;hp=c86ed71d633c22d6f638576f7660c52a5f783d66
    
    Instead of using 'struct ucontext' this patch changes it
    to the typedef ucontext_t which already exists in older and
    new versions of glibc.
    
    Signed-off-by: Adrian Reber <areber at redhat.com>
    Reviewed-by: Dmitry Safonov <dsafonov at virtuozzo.com>
    Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>

That was possible to fix to work with the old and new glibc at the same time.

This change might require a feature test.

		Adrian


More information about the CRIU mailing list