[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: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Tue, 13 Jul 2021 09:41:03 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WeskLsgQzCKIXI6FsZlZmD2fkaezCdSKwu1Qyucblno=; b=STPWZJTNYWPzvnMc5oJUniTbzuLql3ai0qw4CQohIsAWzXSdhocT8VBRVn3L2poc7no0IW0pvbC1v7wwTEtL6oQqOSYYUc4IHJkwD5hqbd5sXbd1e6vdAOJAGPGi7siQYc0f1k19zNiXaZtWaaTnWffcTZKFI67GREJtyqyQXZs24p6yWxVeAiXtOvLAkBdpqVd5HDmYjl1nrAtw4LVLWprmLPteoM5RELTuCivnMFuenNJUlrCnQOSTM4hSl4/PzS1GgdaE3gErBquqlpdohu+WWYR/fjfNXKV8lvHt66Q7D83fJUsFVys/ayg13J+zEiwCyiVl0DtZDgJb80eqGA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jy5trdU0jBdCZYpxk4B5MWN5yesOezR6A/K7D7AeJJQkdT1yfqWMjcFXAtXK3JOoHV4lZ4tYX/yrlTVQI3w9FBSjWywVspAAP0aIHSCcGOeNAVIK9JYYK7CVC4XGSXVwLdl83Y4vuW0nHbFLE60TxKg+4us7dPaAn20UJMcF38V3EjM4wC7s1691xJf8dzlYSAK8qCMpBHAGicvXvqzHdm2vZ3CTR/qIdLd5pNfecW00s2eyffRNMdzTSOgxJuH5btdx8o0+oHEvWAI42AphE262eOm71OFncke3qQrlH9IBXy8p+Hg2Hwe4tqJupH4vL/BVGt/SNrGIbVC4PbcR8Q==
  • Authentication-results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=suse.com;
  • 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: Tue, 13 Jul 2021 07:41:08 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 12.07.2021 17:22, Anthony PERARD wrote:
> 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).

Question then is: Isn't this actually a bug?

>>>  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.

Okay, I guess I need to get further through the series to see the final
effects.

Jan




 


Rackspace

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