On Fri, 1 Jul 2022, Bertrand Marquis wrote: > > On 30 Jun 2022, at 22:03, Stefano Stabellini wrote: > > > > On Thu, 30 Jun 2022, Bertrand Marquis wrote: > >>> On 29 Jun 2022, at 18:22, Stefano Stabellini wrote: > >>> > >>> On Wed, 29 Jun 2022, Luca Fancellu wrote: > >>>> + CC: Stefano Stabellini > >>>> > >>>>> On 24 Jun 2022, at 17:04, Anthony PERARD wrote: > >>>>> > >>>>> Patch "tools: Add -Werror by default to all tools/" have added > >>>>> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other > >>>>> makefiles as it is now duplicated. > >>>>> > >>>>> Signed-off-by: Anthony PERARD > >>>> > >>>> Hi Anthony, > >>>> > >>>> I will try to review the serie when I manage to have some time, in the mean time I can say the whole > >>>> serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to > >>>> create/destroy/console guests and no problem so far. > >>>> > >>>> The only problem I have is building for arm32 because, I think, this patch does a great job and it > >>>> discovers a problem here: > >>> > >>> That reminds me that we only have arm32 Xen hypervisor builds in > >>> gitlab-ci, we don't have any arm32 Xen tools builds. I'll add it to my > >>> TODO but if someone (not necessarily Luca) has some spare time it could > >>> be a nice project. It could be done with Yocto by adding a Yocto build > >>> container to automation/build/. > >> > >> We have now a way to build and run xen for arm32 on qemu using Yocto. > >> We are using this internally and also will test Xen with guests on arm32 using this soon. > >> > >> I am upstreaming to meta-virtualisation all the fixes needed for that so it should be fairly straight forward do reproduce this in Yocto build in a container. > >> > >> Please tell me what you need and I will try to provide you a set of scripts or instructions do reproduce that on gitlab. > > > > That would be great! > > > > We need two things: > > > > - a Yocto build container > > - a build script > > > > > > The build container would be something like: > > automation/build/debian/unstable-arm64v8.dockerfile. It is a Dockerfile > > to create a container with Yocto and all required dependencies. It could > > be based on Debian arm64. The build container is only built once and > > pushed to the gitlab registry, but it is executed every time a gitlab > > pipeline is started. > > > > We probably want the meta layers to be pulled as part of the build > > container build (git clone from the Dockerfile) because otherwise we > > would end up git cloining them every time we run a gitlab-ci pipeline, > > slowing everything down. > > > > > > The build script is the script executed in the build container for every > > pipeline. > > > > Imagine you have a container "yocto-arm32", basically we want to do: > > > > # docker run yocto-arm32 build.script > > > > where build.script is the script that actually triggers the Xen build > > and produces the binary output. > > > > The current build script is automation/scripts/build; it is used for all > > build containers (all of them, from Debian to Fedora and Alpine) but it > > is probably not suitable to be used for Yocto. It simply calls > > ./configure; make; make install. It is more for normal distros. > > > > I imagine that the build script for Yocto would call bitbake. > > > > > > With the build container Dockerfile and the build script it becomes > > very simple to add Yocto arm32 to gitlab-ci. > > > > I realize that the actual build could be done on both arm64 or x86. > > Currently the arm32 hypervisor-only cross-build is done on x86. See > > automation/build/debian/unstable-arm32-gcc.dockerfile. Either way is OK. > > I will work on that and I think we can take this discussion offline as there are some elements missing right now (like where is the xen tree to test). No problem, I am happy to help offline as well. The Xen tree is given to you automatically by gitlab-ci (because it is the repository with the .gitlab* yaml files.) The build container starts execution with the Xen repository to test ready inside.