All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony PERARD <anthony.perard@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>,
	"Ian Jackson" <iwj@xenproject.org>,
	"Julien Grall" <julien@xen.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Wei Liu" <wl@xen.org>,
	"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [XEN PATCH v8 07/47] build: set ALL_OBJS to main Makefile; move prelink.o to main Makefile
Date: Tue, 7 Dec 2021 11:23:47 +0000	[thread overview]
Message-ID: <Ya9EQwNETQ6BPlma@perard> (raw)
In-Reply-To: <b4bde105-094d-067a-4657-a7ff041aee4a@suse.com>

On Mon, Dec 06, 2021 at 05:52:51PM +0100, Jan Beulich wrote:
> On 25.11.2021 14:39, Anthony PERARD wrote:
> 
> Nit: In the title, do you mean "set ALL_OBJS in main Makefile; ..."?
> 
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -285,8 +285,21 @@ CFLAGS += -flto
> >  LDFLAGS-$(CONFIG_CC_IS_CLANG) += -plugin LLVMgold.so
> >  endif
> >  
> > +# Note that link order matters!
> > +ALL_OBJS-y                := common/built_in.o
> > +ALL_OBJS-y                += drivers/built_in.o
> > +ALL_OBJS-y                += lib/built_in.o
> > +ALL_OBJS-y                += xsm/built_in.o
> > +ALL_OBJS-y                += arch/$(TARGET_ARCH)/built_in.o
> > +ALL_OBJS-$(CONFIG_CRYPTO) += crypto/built_in.o
> > +
> > +ALL_LIBS-y                := lib/lib.a
> > +
> >  include $(BASEDIR)/arch/$(TARGET_ARCH)/arch.mk
> >  
> > +export ALL_OBJS := $(ALL_OBJS-y)
> > +export ALL_LIBS := $(ALL_LIBS-y)
> 
> Who's the consumer of these exports? I ask because I don't consider the
> names very suitable for exporting, and hence I'd prefer to see their
> scope limited. If e.g. it's only a single make invocation where they
> need propagating, doing so on the command line might be better.

There seems to be only one consumer, "build.mk", and only the last
$(MAKE) call in the recipe "$(TARGET)". So, it's probably fine to set
both on the command line instead of using export. I'll have a look.

> > --- a/xen/arch/arm/Rules.mk
> > +++ b/xen/arch/arm/Rules.mk
> > @@ -0,0 +1,5 @@
> > +# head.o is built by descending into arch/arm/$(TARGET_SUBARCH), depends on the
> > +# part of $(ALL_OBJS) that will eventually recurse into $(TARGET_SUBARCH)/ and
> > +# build head.o
> > +arch/arm/$(TARGET_SUBARCH)/head.o: arch/arm/built_in.o
> > +arch/arm/$(TARGET_SUBARCH)/head.o: ;
> 
> Can't this be a single line:
> 
> arch/arm/$(TARGET_SUBARCH)/head.o: arch/arm/built_in.o ;

Sure.

> > @@ -235,7 +218,7 @@ $(TARGET).efi: FORCE
> >  	echo '$(if $(filter y,$(XEN_BUILD_EFI)),xen.efi generation,EFI support) disabled'
> >  endif
> >  
> > -efi/buildid.o efi/relocs-dummy.o: $(BASEDIR)/arch/x86/efi/built_in.o
> > +# These should already have been rebuilt when building the prerequisite of "prelink.o"
> >  efi/buildid.o efi/relocs-dummy.o: ;
> 
> If the comment is true in all cases, do they really still need an empty
> rule?

Yes. Those two targets are unfortunately a prerequisite of "xen.efi", so
make will look for a rule to make them, and would use %.o:%.c without
this explicit rule.

Thanks,

-- 
Anthony PERARD


  reply	other threads:[~2021-12-07 11:24 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-25 13:39 [XEN PATCH v8 00/47] xen: Build system improvements, now with out-of-tree build! Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 01/47] build: factorise generation of the linker scripts Anthony PERARD
2021-12-14 16:54   ` Julien Grall
2021-12-14 17:09     ` Anthony PERARD
2021-12-14 17:12       ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 02/47] xen: move include/asm-* to arch/*/include/asm Anthony PERARD
2021-12-02 13:54   ` Jan Beulich
2021-12-14 16:59   ` Julien Grall
2021-12-14 17:39   ` Andrew Cooper
2021-11-25 13:39 ` [XEN PATCH v8 03/47] build: generate "include/xen/compile.h" with if_changed Anthony PERARD
2021-12-02 13:57   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 04/47] build: set XEN_BUILD_EFI earlier Anthony PERARD
2021-12-02 14:06   ` Jan Beulich
2021-12-07 11:04     ` Anthony PERARD
2021-12-07 11:24       ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 05/47] build: adjust $(TARGET).efi creation in arch/arm Anthony PERARD
2021-12-14 17:01   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 06/47] build: avoid re-executing the main Makefile by introducing build.mk Anthony PERARD
2021-12-06 16:42   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 07/47] build: set ALL_OBJS to main Makefile; move prelink.o to main Makefile Anthony PERARD
2021-12-06 16:52   ` Jan Beulich
2021-12-07 11:23     ` Anthony PERARD [this message]
2021-11-25 13:39 ` [XEN PATCH v8 08/47] build: prepare to always invoke $(MAKE) from xen/, use $(obj) Anthony PERARD
2021-12-14 17:02   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 09/47] build: rework test/livepatch/Makefile Anthony PERARD
2021-12-06 17:00   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 10/47] build: rework cloc recipe Anthony PERARD
2021-12-06 17:03   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 11/47] build: fix enforce unique symbols for recent clang version Anthony PERARD
2021-12-07 10:23   ` Jan Beulich
2021-12-07 11:33     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 12/47] build: build everything from the root dir, use obj=$subdir Anthony PERARD
2021-12-07 11:10   ` Jan Beulich
2021-12-16 11:08     ` Anthony PERARD
2021-12-20 11:29       ` Anthony PERARD
2021-12-21  7:55         ` Jan Beulich
2021-12-21  9:30           ` Anthony PERARD
2021-12-14 17:03   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 13/47] build: introduce if_changed_deps Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 14/47] build: rename __LINKER__ to LINKER_SCRIPT Anthony PERARD
2021-12-14 17:05   ` Julien Grall
2021-12-15  7:49     ` Jan Beulich
2021-12-15  9:20       ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 15/47] build: hook kconfig into xen build system Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 16/47] xen/tools/kconfig: fix build with -Wdeclaration-after-statement Anthony PERARD
2021-12-07 11:20   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 17/47] build: remove KBUILD_ specific from Makefile.host Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 18/47] build: handle always-y and hostprogs-always-y Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 19/47] build: start building the tools with the main makefiles Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 20/47] build: add headers path to CFLAGS once for all archs Anthony PERARD
2021-12-14 17:06   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 21/47] build: generate x86's asm-macros.h with filechk Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 22/47] build: clean-up "clean" rules of duplication Anthony PERARD
2021-12-14 17:07   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 23/47] build: rework "clean" to clean from the root dir Anthony PERARD
2021-12-10 13:29   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 24/47] build: use main rune to build host binary x86's mkelf32 and mkreloc Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 25/47] build: rework coverage and ubsan CFLAGS handling Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 26/47] build,x86: remove the need for build32.mk Anthony PERARD
2021-12-21 13:33   ` Jan Beulich
2022-01-18 10:50     ` Anthony PERARD
2022-01-18 13:44       ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 27/47] build: grab common EFI source files in arch specific dir Anthony PERARD
2021-12-21 13:53   ` Jan Beulich
2022-01-18 11:06     ` Anthony PERARD
2022-01-18 13:49       ` Jan Beulich
2022-01-18 16:49         ` Anthony PERARD
2022-01-18 16:21       ` Anthony PERARD
2022-01-19  7:46         ` Jan Beulich
2022-01-20 10:16           ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 28/47] build: replace $(BASEDIR) by $(objtree) Anthony PERARD
2021-12-21 13:55   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 29/47] build: replace $(BASEDIR) and use $(srctree) Anthony PERARD
2021-12-21 14:00   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 30/47] build: rework "headers*.chk" prerequisite in include/ Anthony PERARD
2021-12-21 14:07   ` Jan Beulich
2022-01-18 11:41     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 31/47] build: specify source tree in include/ for prerequisite Anthony PERARD
2021-12-21 14:16   ` Jan Beulich
2022-01-18 12:14     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 32/47] build: shuffle main Makefile Anthony PERARD
2021-12-21 14:18   ` Jan Beulich
2022-01-20 17:27     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 33/47] build: adding out-of-tree support to the xen build Anthony PERARD
2022-01-10 11:26   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 34/47] build: add %.E targets Anthony PERARD
2021-12-16 11:18   ` Andrew Cooper
2021-12-16 11:56     ` Anthony PERARD
2021-12-21 14:20   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 35/47] RFC, no-VPATH: Kconfig: tell where Kconfig files are Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 36/47] RFC, no-VPATH: Kconfig: only ready auto.conf from objtree Anthony PERARD
2021-12-21 14:23   ` Jan Beulich
2021-12-21 15:12     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 37/47] RFC, no-VPATH: build: remove --include-dir option from MAKEFLAGS Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 38/47] WIP, no-VPATH: rework Makefile.host Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 39/47] RFC, no-VPATH: x86/boot: workaround gcc including the wrong file Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 40/47] RFC, no-VPATH: prepend $(srctree) to source prerequisite Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 41/47] WIP, no-VPATH: build object from generated C files Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 42/47] RFC, no-VPATH: workaround includes in xsm/flask Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 43/47] WIP, no-VPATH: build object from generated assembly source file Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 44/47] WIP, no-VPATH: build object from S source to be in build_in.o Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 45/47] WIP, no-VPATH: build xen, out-of-tree! Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 46/47] RFC, no-VPATH: remove check for clean source tree for out-of-tree builds Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 47/47] WIP: no more link farming for xen-shim Anthony PERARD
2021-12-21 15:26 ` [XEN PATCH v8 00/47] xen: Build system improvements, now with out-of-tree build! Jan Beulich
2022-01-10 11:19   ` Jan Beulich
2022-01-18 10:33   ` Anthony PERARD
2022-01-21  6:59 ` Jan Beulich
2022-01-21 10:34   ` Anthony PERARD
2022-01-21 10:58     ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Ya9EQwNETQ6BPlma@perard \
    --to=anthony.perard@citrix.com \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=bertrand.marquis@arm.com \
    --cc=george.dunlap@citrix.com \
    --cc=iwj@xenproject.org \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.