xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <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>
Subject: Re: [PATCH] build: centralize / unify asm-offsets generation
Date: Tue, 27 Apr 2021 15:40:24 +0200	[thread overview]
Message-ID: <e9a7b3c5-db38-76d8-64ec-2cfd9f46f1fd@suse.com> (raw)
In-Reply-To: <YIgSNRq2w7KSSaiD@Air-de-Roger>

On 27.04.2021 15:31, Roger Pau Monné wrote:
> On Tue, Apr 27, 2021 at 02:30:35PM +0200, Jan Beulich wrote:
>> On 27.04.2021 11:05, Roger Pau Monné wrote:
>>> On Wed, Apr 21, 2021 at 04:09:03PM +0200, Jan Beulich wrote:
>>>> On 20.04.2021 18:20, Roger Pau Monné wrote:
>>>>> On Tue, Apr 20, 2021 at 05:47:49PM +0200, Jan Beulich wrote:
>>>>>> On 20.04.2021 17:29, Roger Pau Monné wrote:
>>>>>>> On Thu, Apr 01, 2021 at 10:33:47AM +0200, Jan Beulich wrote:
>>>>>>>> @@ -399,7 +399,11 @@ include/xen/compile.h: include/xen/compi
>>>>>>>>  	@sed -rf tools/process-banner.sed < .banner >> $@.new
>>>>>>>>  	@mv -f $@.new $@
>>>>>>>> -include/asm-$(TARGET_ARCH)/asm-offsets.h: arch/$(TARGET_ARCH)/asm-offsets.s
>>>>>>>> +asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
>>>>>>>> +	$(CC) $(filter-out -Wa$(comma)% -flto,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
>>>>>>>> +	$(call move-if-changed,$@.new,$@)
>>>>>>> Won't it be more natural to keep the .s file in arch/$(TARGET_ARCH)?
>>>>>> Yes and no: Yes as far as the actual file location is concerned.
>>>>>> No when considering where it gets generated: I generally consider
>>>>>> it risky to generate files outside of the directory where make
>>>>>> currently runs. There may be good reasons for certain exceptions,
>>>>>> but personally I don't see this case as good enough a reason.
>>>>>> Somewhat related - if doing as you suggest, which Makefile's
>>>>>> clean: rule should clean up that file in your opinion?
>>>>> The clean rule should be in the makefile where it's generated IMO,
>>>>> same as asm-offsets.h clean rule currently in xen/Makefile.
>>>>>> Nevertheless, if there's general agreement that keeping the file
>>>>>> there is better, I'd make the change and simply ignore my unhappy
>>>>>> feelings about it.
>>>>> I don't have a strong opinion, it just feels weird to have this IMO
>>>>> stray asm-offsets.s outside of it's arch directory, taking into
>>>>> account that we have asm-offsets.h generated from xen/Makefile into an
>>>>> arch specific directory already as a precedent in that makefile.
>>>> Well, asm-offsets.h generation doesn't involve the compiler, hence
>>>> no .*.d files get generated and want including later. For
>>>> asm-offsets.s to have dependencies properly honored, if we
>>>> generated it in xen/arch/<arch>, .asm-offsets.d would also end up
>>>> there, and hence including of it would need separately taking care
>>>> of.
>>> I'm not sure I understand what do you mean with inclusion need taking
>>> care of separately. Isn't it expected for .d file to reside in the
>>> same directory as the output,
>> Yes, ...
>>> and hence picked up automatically?
>> ... and hence they _wouldn't_ be picked up automatically while
>> building in xen/ if the .s file got created in xen/arch/<arch>/.
> Hm, so that would prevent re-building the target when the dependencies
> changed as the .d file being in the arch directory would attempt the
> rebuild from there instead of the top level xen/?

No, in the arch directory nothing should happen at all, as there's
no rule to rebuild asm-offsets.s. And if we built it in the subarch
directory (where asm-offsets.c lives), the wrong rule would kick in
(the general one compiling C to assembly).

> I guess the alternative would be to force a rebuild of the target
> every time, in order to not depend on the .d logic?

Simply rebuilding always is not going to be good: There should be
no re-building at all when actually just installing Xen. Hence
while move-if-changed would be able to suppress the bulk of the
fallout, this would still be too much rebuilding for my taste in
that specific case.

The option I've been hinting at was to explicitly include the .d
files from the arch dir. But I don't really like this either ...


  reply	other threads:[~2021-04-27 13:40 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-01  8:33 Jan Beulich
2021-04-01 15:05 ` Julien Grall
2021-04-01 15:29   ` Jan Beulich
2021-04-15  9:50 ` Ping: " Jan Beulich
2021-04-20 15:29 ` Roger Pau Monné
2021-04-20 15:47   ` Jan Beulich
2021-04-20 16:20     ` Roger Pau Monné
2021-04-21 14:09       ` Jan Beulich
2021-04-27  9:05         ` Roger Pau Monné
2021-04-27 12:30           ` Jan Beulich
2021-04-27 13:31             ` Roger Pau Monné
2021-04-27 13:40               ` Jan Beulich [this message]
2021-04-27 14:13                 ` Roger Pau Monné
2021-04-29  9:18                   ` Ping: " Jan Beulich
2021-05-10 17:43                     ` Julien Grall

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:

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

  git send-email \
    --in-reply-to=e9a7b3c5-db38-76d8-64ec-2cfd9f46f1fd@suse.com \
    --to=jbeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=george.dunlap@citrix.com \
    --cc=iwj@xenproject.org \
    --cc=julien@xen.org \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    --subject='Re: [PATCH] build: centralize / unify asm-offsets generation' \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).