[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH v8 00/47] xen: Build system improvements, now with out-of-tree build!


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Tue, 18 Jan 2022 10:33:51 +0000
  • Authentication-results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Alexandru Isaila <aisaila@xxxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, "Jun Nakajima" <jun.nakajima@xxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Alistair Francis <alistair.francis@xxxxxxx>, "Daniel De Graaf" <dgdegra@xxxxxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, Connor Davis <connojdavis@xxxxxxxxx>, Doug Goldstein <cardoe@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>, "Bob Eshleman" <bobbyeshleman@xxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Tamas K Lengyel <tamas@xxxxxxxxxxxxx>, "Paul Durrant" <paul@xxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Petre Pircalabu <ppircalabu@xxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 18 Jan 2022 10:34:13 +0000
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:e9VMhaAy5eaPIJflHems55DYdb4zR+YMi2TC1yhKJyC9Vvbo8/ xG/c5rsCMc5wx9ZJhNo7y90ey7MBThHP1OkOss1NWZPDUO0VHAROoJ0WKh+UyCJ8SXzJ866U 4KSclD4bPLYmRHsQ==
  • Ironport-sdr: ravQVB5qqZzQnM2bqsDL55nxSRm9POqT47PKZxPhGcBolCR7LcBM8yOWCeDd0clF1+QaDXr30U tMhLz03WPnBGjuKhsYXtQwYkWU7cLFOc0IlfF9trx3kIVNKSDBxudQYBR2NGnAPgmzDBW+ZrTX pHEWEreoP8LGYF+VaY1VdWUIyBIiO7EQZkzh9GF9LTcUqUTHc8iZuU2usPeApT3X+2FB2rGpQb pFpp5lA0TyJ1TuKNR2Ej8dPXCY4VmAR0ke7vqmlz8LPBqy4O0kGx36Qhk0zM63HjLsQwHssAST n6jXZLSgbVWog4I1QGjq6I4t
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Tue, Dec 21, 2021 at 04:26:48PM +0100, Jan Beulich wrote:
> On 25.11.2021 14:39, Anthony PERARD wrote:
> >     Also this v8 present a work-in-progress of the ability to do out-of-tree
> >     build without setting VPATH. This is presented as an alternative to 
> > force
> >     use of out-of-tree build. As the last patch show, it allows to build the
> >     xen-shim without the linkfarm and we don't need to make any other 
> > changes
> >     to any thing that build xen (osstest, distribution packages, xen.git, 
> > ...,
> >     and developers finger macros). The patches are only there as WIP / RFC 
> > as
> >     they were some concern about the usefulness and extra changes needed.
> >     We can decide whether those changes are good or if this is too much and 
> > we
> >     should force out-of-tree build for the hypervisor.
> 
> I'm afraid I'm of two minds here. I don't think we want to force people to
> do out-of-tree builds, but I also dislike the idea of mixing in-tree and
> out-of-tree builds. Yet reading the above I understand that the shim build
> would conflict with an in-tree build because certain files would be picked
> (the shim build being an out-of-tree one) from the (dirtied) source tree,
> rather than the shim's build tree. Perhaps the extra path prefixes that I
> commented upon in an individual patch are then indeed the least bad route
> to take.

To me, the problem is with a few build artefact and configuration: the
".config" file that osstest write and edit, and the final location of
the "xen*" artefacts. Having something or someone wanting to edit
".config" breaks out-of-tree build. Otherwise, we could have forced
out-of-tree build like libvirt or qemu are doing.

> There's one compromise which comes to mind, but which may also not be
> liked: We could simply fail out-of-tree builds when the source tree is
> dirty. Then people wanting the shim built would need to use out-of-tree

This isn't a compromise, it is already implemented in "build: adding
out-of-tree support to the xen build". I revert this in patch "RFC,
no-VPATH: remove check for clean source tree for out-of-tree".

> builds also for the "main" hypervisor, but people suppressing the shim
> build anyway (or doing it separately, e.g. using a non-default .config)
> could continue to do in-tree builds. The one puzzle piece I'm lacking so
> far (perhaps simply because of having overlooked where it is) is how, for
> a full-build-of-everything, one would control where the xen/ part of the
> build would go _outside_ of the source (sub-)tree.

I guess that's not really an issue. It would be easy to run `make -C
xen-build -f ../xen/Makefile` (or `make -C xen O=../xen-build`, or even
`make -C xen O=build` would be fine too). With maybe a make variable to
let someone specify a different output tree.

For a full-build-of-everything, we can easily do out-of-tree build. The
full-install-of-everything can pick the build artefact from the new
place. The issue is when someone want that and edit ".config" of the
hypervisor, as adding the file will stop out-of-tree build, so pv shim
will not be able to use out-of-tree build.


But maybe going with mixing in-tree and out-of-tree build is going to be
too complicated. The hard part is for the build system to differentiate
between source file and generated source file, so that might break from
time to time. So maybe avoiding mixing and thus breaking build of some
users might be better and more reliable in the long term.

Cheers,

-- 
Anthony PERARD



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.