[PATCHv6 3/5] kexec/zboot: Add arch independent zboot support

Simon Horman horms at kernel.org
Thu Aug 3 01:04:53 PDT 2023


On Thu, Aug 03, 2023 at 10:37:10AM +0800, Pingfan Liu wrote:
> On Wed, Aug 2, 2023 at 8:33 PM Simon Horman <horms at kernel.org> wrote:
> >
> > On Wed, Aug 02, 2023 at 02:17:57PM +0200, Simon Horman wrote:
> > > On Wed, Aug 02, 2023 at 02:16:33PM +0200, Simon Horman wrote:
> > > > On Wed, Aug 02, 2023 at 05:53:59PM +0800, Pingfan Liu wrote:
> > > > > Hi Simon,
> > > > >
> > > > > Thanks for the try. Please see the comment below.
> > > > >
> > > > > On Tue, Aug 1, 2023 at 3:00 PM Simon Horman <horms at kernel.org> wrote:
> > > > > >
> > > > > > On Mon, Jul 24, 2023 at 10:21:40AM +0800, Pingfan Liu wrote:
> > > > > > > From: Jeremy Linton <jeremy.linton at arm.com>
> > > > > > >
> > > > > > > The linux kernel CONFIG_ZBOOT option creates
> > > > > > > self decompressing PE kernel images. So this means
> > > > > > > that kexec should have a generic understanding of
> > > > > > > the format which may be used by multiple arches.
> > > > > > >
> > > > > > > So lets add an arch independent validation
> > > > > > > and decompression routine.
> > > > > > >
> > > > > > > Signed-off-by: Jeremy Linton <jeremy.linton at arm.com>
> > > > > > > [Modified by Pingfan to export kernel fd]
> > > > > > > Signed-off-by: Pingfan Liu <piliu at redhat.com>
> > > > > >
> > > > > > Hi Pingfan,
> > > > > >
> > > > > > unfortunately this causes a build failure on hppa.
> > > > > >
> > > > > > ../../kexec/kexec-pe-zboot.c:31:10: fatal error: kexec-pe-zboot.h: No such file or directory
> > > > > >    31 | #include <kexec-pe-zboot.h>
> > > > > >       |          ^~~~~~~~~~~~~~~~~~
> > > > > >
> > > > > > Link: https://github.com/horms/kexec-tools/actions/runs/5723580523/job/15508425790
> > > > > >
> > > > >
> > > > > It is not related to cross-compiling. Actually, I have tried to
> > > > > simplify the test matrix, which limits the compilation only on x86_64.
> > > > > And I got the similar error [1]
> > > > >
> > > > > The workflow control file is [2], which clips out all arches except
> > > > > x86_64.  But I can successfully build it on the Fedora system with the
> > > > > following bash script, which is based on the github's build log.  So
> > > > > maybe it is a bug with the compiling tools?
> > > > >
> > > > > kexec_tools_dir="./"
> > > > >
> > > > > mkdir $kexec_tools_dir/_build \
> > > > >          $kexec_tools_dir/_build/sub \
> > > > >          $kexec_tools_dir/_inst \
> > > > >          $kexec_tools_dir/_dest
> > > > > chmod a-w $kexec_tools_dir
> > > > > test -d $kexec_tools_dir/_build
> > > > > INSTALL_BASE=$(cd $kexec_tools_dir/_inst && pwd | sed -e
> > > > > 's,^[^:\\/]:[\\/],/,') &&\
> > > > >         DESTDIR="$kexec_tools_dir/_dest" && \
> > > > >         cd $kexec_tools_dir/_build/sub && \
> > > > >                 ../../configure \
> > > > >                  \
> > > > >                 --srcdir=../.. --prefix="$INSTALL_BASE" && \
> > > > >         make  -j8
> > > > >
> > > > >
> > > > > [1]: https://github.com/pfliu/kexec-tools/actions/runs/5737254109/job/15548520863
> > > > > [2]: https://github.com/pfliu/kexec-tools/blob/zbootV6/.github/workflows/main.yml
> > > >
> > > > Thanks,
> > > >
> > > > I guess that kexec-pe-zboot.h is missing in the build environment for the
> > > > GitHub actions, but present in your Fedora environment.
> > > >
> > > > Could you take a look and see where your copy of kexec-pe-zboot.h
> > > > came from?
> > >
> > > Actually it seems to be added by this patch (sorry for not noticing)!
> > > So I guess it is an include path problem.
> >
> > I think I have found the problem.
> > The kexec-tools build system is a bit unusual,
> > and the new file, kexec-pe-zboot.h, was not included in distribution
> > tarballs. Thus the build failures.
> >
> 
> Unexpectedly, and thank for your insight.
> 
> > I think you can resolve that by squashing the following into this patch.
> >
> > diff --git a/include/Makefile b/include/Makefile
> > --- a/include/Makefile
> > +++ b/include/Makefile
> > @@ -1,6 +1,7 @@
> >  dist += include/Makefile               \
> >         include/config.h                \
> >         include/config.h.in             \
> > +       include/kexec-pe-zboot.h        \
> >         include/kexec-uImage.h          \
> >         include/x86/x86-linux.h         \
> >         include/x86/mb_info.h           \
> >
> 
> After applying this patch, the github workflow successfully finished.
> I will send out V7 immediately.
> 
> Appreciate for your kind help again.

Thanks, I see v7 now.



More information about the kexec mailing list