[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v7 25/51] build: rework test/livepatch/Makefile
On 24.08.2021 12:50, Anthony PERARD wrote: > This rework the livepatch/Makefile to make it less repetitive and make > use of the facilities. All the targets to be built are now listed in > $(extra-y) which will allow Rules.mk to build them without the need of > a local target in a future patch. > > There are some changes/fixes in this patch: > - when "xen-syms" is used for a target, it is added to the dependency > list of the target, which allow to rebuild the target when xen-syms > changes. But if "xen-syms" is missing, make simply fails. > - modinfo.o wasn't removing it's $@.bin file like the other targets, > this is now done. > - The command to build *.livepatch targets as been fixed to use > $(XEN_LDFLAGS) rather than just $(LDFLAGS) which is a fallout from > 2740d96efdd3 ("xen/build: have the root Makefile generates the > CFLAGS") > > make will findout the dependencies of the *.livepatch files and thus > what to built by "looking" at the objects listed in the *-objs > variables. The actual dependencies is generated by the new > "multi_depend" macro. > > "$(targets)" needs to be updated with the objects listed in the > different *-objs variables to allow make to load the .*.cmd dependency > files. > > This patch copies the macro "multi_depend" from Linux 5.12. > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Just two and a half remarks; I'd really like the livepatch maintainers to properly review this change. > --- a/xen/scripts/Kbuild.include > +++ b/xen/scripts/Kbuild.include > @@ -151,3 +151,12 @@ why = > \ > > echo-why = $(call escsq, $(strip $(why))) Not the least seeing this in context, ... > endif > + > +# Useful for describing the dependency of composite objects > +# Usage: > +# $(call multi_depend, multi_used_targets, suffix_to_remove, suffix_to_add) > +define multi_depend ... I would wish we wouldn't introduce further names with underscores in them when dashes are valid to be used. > +$(foreach m, $(notdir $1), \ > + $(eval $(obj)/$m: \ > + $(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s))))))) I'd like to suggest to be consistent here: Either $(s) and then also $(m) in both places, or $m and then also $s. > --- a/xen/test/livepatch/Makefile > +++ b/xen/test/livepatch/Makefile >[...] > +$(obj)/%.livepatch: FORCE > + $(call if_changed,livepatch) > + > +$(call multi_depend, $(filter %.livepatch,$(extra-y)), .livepatch, -objs) > +targets += $(sort $(foreach m,$(basename $(notdir $(filter > %.livepatch,$(extra-y)))), \ > + $($(m)-objs))) I think it would help readability if the 2nd line was properly indented to reflect the pending open parentheses: targets += $(sort $(foreach m,$(basename $(notdir $(filter %.livepatch,$(extra-y)))), \ $($(m)-objs))) or (less desirable imo) targets += $(sort \ $(foreach m,$(basename $(notdir $(filter %.livepatch,$(extra-y)))), \ $($(m)-objs))) Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |