On Tue, Dec 07, 2021 at 12:10:34PM +0100, Jan Beulich wrote:
> On 25.11.2021 14:39, Anthony PERARD wrote:
> > A subdirectory is now built by setting "$(obj)" instead of changing
> > directory. "$(obj)" should always be set when using "Rules.mk" and
> > thus a shortcut "$(build)" is introduced and should be used.
> > 
> > A new variable "$(need-builtin)" is introduce. It is to be used
> > whenever a "built_in.o" is wanted from a subdirectory. "built_in.o"
> > isn't the main target anymore, and thus only needs to depends on the
> > objects that should be part of "built_in.o".
> > 
> > Introduce $(srctree) and $(objtree) to replace $(BASEDIR) in cases a
> > relative path is better, and $(abs_srctree) and $(abs_objtree) which
> > have an absolute path.
> > 
> > DEPS is updated as the existing macro to deal with it doesn't know
> > about $(obj).
> > 
> > There's some changes in "Rules.mk" which in addition to deal with
> > "$(obj)" also make it's looks more like "Makefile.build" from Linux
> > v5.12.
> > 
> > test/Makefile doesn't need special handling in order to build
> > everything under test/, Rules.mk will visit test/livepatch via
> > $(subdir-y), thus "tests" "all" and "build" target are removed.
> > "subtree-force-update" target isn't useful so it is removed as well.
> > 
> > test/livepatch/Makefile doesn't need default target anymore, Rules.mk
> > will build everything in $(extra-y) and thus all *.livepatch.
> > 
> > Adjust cloc recipe: dependency files generated by CC will now have the
> > full path to the source file, so we don't need to prepend the
> > subdirectory. This fix some issue with source not been parsed by cloc
> > before. Also source from tools/kconfig would be listed with changes in
> > this patch so adjust the find command to stop listing the "tools"
> > directory and thus kconfig. With a default build of Xen on X86, they
> > are a few new files parsed by cloc:
> >     arch/x86/x86_64/compat/mm.c
> >     arch/x86/x86_64/mm.c
> >     common/compat/domain.c
> >     common/compat/memory.c
> >     common/compat/xlat.c
> > 
> > Signed-off-by: Anthony PERARD <[email protected]>
> > Acked-by: Bob Eshleman <[email protected]>
> 
> Reviewed-by: Jan Beulich <[email protected]>
> with one nit and a remark:
> 
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -22,6 +22,15 @@ export CHECKPOLICY       ?= checkpolicy
> >  export BASEDIR := $(CURDIR)
> >  export XEN_ROOT := $(BASEDIR)/..
> >  
> > +abs_objtree := $(CURDIR)
> > +abs_srctree := $(CURDIR)
> 
> Nit: In line with e.g. obj-y I think these would better be abs-srctree and
> abs-objtree.

I guess that would be fine, we don't need to keep the same spelling that
Kbuild does.

> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -80,6 +80,9 @@ endif
> >  extra-y += asm-macros.i
> >  extra-y += xen.lds
> >  
> > +# Allows usercopy.c to include itself
> > +$(obj)/usercopy.o: CFLAGS-y += -iquote .
> > +
> >  ifneq ($(CONFIG_HVM),y)
> >  $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
> >  endif
> > @@ -129,13 +132,13 @@ $(TARGET)-syms: $(BASEDIR)/prelink.o $(obj)/xen.lds
> >     $(NM) -pa --format=sysv $(@D)/.$(@F).0 \
> >             | $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort \
> >             >$(@D)/.$(@F).0.S
> > -   $(MAKE) -f $(BASEDIR)/Rules.mk efi-y= $(@D)/.$(@F).0.o
> > +   $(MAKE) $(build)=$(@D) efi-y= $(@D)/.$(@F).0.o
> 
> Hmm, hasn't the efi-y= become unnecessary already by patch 6?

I think since patch 4 "build: set XEN_BUILD_EFI earlier". I'll remove
these there then.

Thanks,

-- 
Anthony PERARD

Reply via email to