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

Re: [XEN PATCH v6 12/31] build: use subdir-y in test/Makefile


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Mon, 12 Jul 2021 16:22:11 +0100
  • Authentication-results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 12 Jul 2021 15:22:30 +0000
  • Ironport-hdrordr: A9a23:sQIWoaCrozRAy8LlHemu55DYdb4zR+YMi2TC1yhKKCC9Vvbo8P xG/c5rsSMc5wx8ZJhNo7+90ey7MBXhHP1OkOws1NWZLWrbUQKTRekIh+bfKn/bak/DH4ZmpN 5dmsNFaOEYY2IVsfrH
  • Ironport-sdr: oLmyHTcK2Tb5AHkx9L2hkNnM8SumIBKOdhJJOWewB3tbjVseW5Gl7FeH8JcXkoNp61PJsFAB++ dvJEmVNLcrk6Va/3ECS3onqr1QEc7+1EMP5uo5MqZWLrlnBBgykW79Fslweg+76A9V2ciMkpcq K7viZPNioyWhKKzvRiHeKun0eTvKEhAP1y/CTZ/rbma8Qd0NinJ00iBZ0BcLOZBqjVih1ntqXB SLj2b+5OfZK+zV1j3XUwZ9TmufcZ7aQy6pO6z2aSB9oUGouu1CJqruEF9Yx95lrJxNhZ1eW0cR 7wM=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Wed, Jul 07, 2021 at 05:26:13PM +0200, Jan Beulich wrote:
> On 01.07.2021 16:09, Anthony PERARD wrote:
> > --- a/xen/test/Makefile
> > +++ b/xen/test/Makefile
> > @@ -4,15 +4,10 @@ tests all: build
> >  
> >  ifneq ($(XEN_TARGET_ARCH),x86_32)
> >  # Xen 32-bit x86 hypervisor no longer supported, so has no test livepatches
> > -SUBDIRS += livepatch
> > +subdir-y += livepatch
> >  endif
> 
> As per xen/Rules.mk having
> 
> subdir-y := $(subdir-y) $(filter %/, $(obj-y))
> obj-y    := $(patsubst %/, %/built_in.o, $(obj-y))
> ...
> subdir-obj-y := $(filter %/built_in.o, $(obj-y))
> 
> this will result in building of livepatch/built_in.o afaict. Is
> this an intended but benign side effect?

Actually, nothing in Rules.mk is using $(subdir-y) other than updating
it with possible subdir from $(obj-y).
Recursion into a subdir only happen if it is listed in $(obj-y) and thus
should be part of a built_in.o. Rules.mk doesn't have a mean to recurs
otherwise.

So nothing is actually going to try to build livepatch/build_in.o due to
$(subdir-y).

> >  install build subtree-force-update uninstall: %:
> > -   set -e; for s in $(SUBDIRS); do \
> > +   set -e; for s in $(subdir-y); do \
> >             $(MAKE) -f $(BASEDIR)/Rules.mk -C $$s $*; \
> >     done
> > -
> > -clean::
> > -   set -e; for s in $(SUBDIRS); do \
> > -           $(MAKE) -f $(BASEDIR)/Rules.mk -C $$s $@; \
> > -   done
> 
> And then why can't the generic recursion rule in xen/Rules.mk
> not also be used for the "build" target? (I guess "install" and
> "uninstall" need to remain separate, and don't think I know what
> "subtree-force-update" is about.)

There's some more changed in a later patch[1] to Rules.mk which would
make it possible to remove the need for a "build" target and I actually
remove the "build" target as well as the "subtree-force-update" target.
Some more changes in tests/livepatch/ are done in patch[2] which
actually allow to remove the "build" target.

    [1] build: build everything from the root dir, use obj=$subdir
    [2] build: rework test/livepatch/Makefile

I think the "subtree-force-update" target as to do with having the same
logic to deal with $(SUBDIRS) as the logic in tools/ and the top
makefile, but might not have been actually hooked up.

Cheers,

-- 
Anthony PERARD



 


Rackspace

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