[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] build: centralize / unify asm-offsets generation


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Tue, 27 Apr 2021 16:13:17 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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=Xvl8tUv11v88ac6cNVZFYsL7nrvLWJfVU0qKFveb444=; b=PSiFIwqMlLGmjn63Obm3FezlskOdjhW5LLtb9kAHNlhhJxZTnyAnqYrcILmwb4qLnGs950y9UTLIxPRgHqKCZzNJevLmQBUhvYhDJRb2ECP7HEr1Z/tBUkzFjzYptWJLj++34503Asc19K1mDUamjo0kKviKoqulgXim3PdV0fs2FqEs/2c3JZsc9sbgJJ1hcsVk8KARR7kZPYbLDaZFJ4lFeM3KscfNcxOqpG3XiFczIpML3NcZEcNPIUIceZh1ueBGnmtalh/e5zQFHbKJZtX4YyIOHmc4Rr5FYS4ZetBzrmEvoxfJj1dFq9ozB4WYGLBWV1KoGVyaDU9yCuXlGg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EFwtTO7RdHxnQriaxov6zCX7GB/Z5wMQA5ThpLj9xfGWqs6DJN+PU6MpfZYa8WR1gznwm/AoN35LfFPErotDdGc6+yK3d/QCIjNKS+3/fzDSguJUgt+FaOHY3WJmR+Y5DSJEeprcBNP0ikEvKmqtQR29nz7iSteCy7/Wo8yDND67k+7+cQGJWS4lpU4XF8VouPUXq5wL0RzTqlTY2oPx1QQPiZ9Np9hlE3EEInplg5MGexHDfdUjVJ/v4KThgKzg/LCqtVQIgvcTyS7BpPzL/iM/m0Xq9z7YPqldgXB3T/0xJGmP7Mo7GA532zXfLh93ZVICP4LNNGHgZ46WJFvKEQ==
  • Authentication-results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, 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>
  • Delivery-date: Tue, 27 Apr 2021 14:13:36 +0000
  • Ironport-hdrordr: A9a23:ZTxqiaDsH4ITD5DlHehTtMeALOonbusQ8zAX/mhLY1h8btGYm8 eynP4SyB/zj3IrVGs9nM2bUZPsfVr1zrQwxYUKJ7+tUE3duGWuJJx/9oeK+VfdMgXE3Kpm2a 9kGpIUNPTZB1J3lNu/xQG+HcopztXvytHRuc71yXBxQQZ2L4Rp6AlkAgiWe3cGPzVuL5w/CZ aa+457tyOtEE5nJviTK3EZU4H41rn2vb38ZxpuPX8awSmIyQil8bvrVyWfty1uKg9n5ZcH3S z7nxfi5qOl2svLgSP082PI9ZxZlJ/A57J4dauxo/MYIDntlQqkDb4JM9Hs0gwdm+2h5E0nl9 PBuX4bTqJOwknMdWK4qwaF4XiC7B8S6mTvwVLdoXzvrd2RfkNeN+N9hJlUehac1kw4vNsU6t Mo40ulsfNsbS/orWDY3ZzlRhtqnk27rT4JiugIlUFSVoMYdft4sZEf1Fk9KuZMIAvKrKQcVM V+BsDV4/hbNXmAaWrCg2VpyNuwGlwuAxa9RFQYsMD96UkboFlJi28jgOAPlHYJ85wwD7Ne4f 7fD6hunLZSCugbcLx6H+VEZcesEGTCTVbtPQupUBraPZBCH0iIh4/84b0z6u3vUocP1oEOlJ PIV04djkoJP3vjEtePxoBG/zrKR3+gWTj37NpRjqIJ9YHUdf7OC2muWVoum8yvr7E0GcvAQc u+P5pQHrvtNm3rFYFV3xDvWpVbJHUEOfdl+uoTaharmIbmO4fqvuvUfLL4P7z2CwspXWv5Hz 8CUVHIVYZ9x3HufkW9rAnaWnvrdEC614l3CrLm8+8az5VIMJZNvAgTgVGw/dqKNjVGr6wzcC JFUfLau5L+gVPz0XfD7m1vNBYYJF1S+q/cX3RDohJPKEfvNa8OoM+eY31f0XGAIQViS8/MFh VQzm4Hu56fHti1/2QPGtinOmWVgz8vv3qMVY4bgbDGz9ziYIkEApEvX7FRGQ3HGwduoxtjrH 5OZWY/NwriPwKrrZ/grZQPQMnDatF3gW6QULRpgEOakX/ZmOYCaT8wWSW0XcuenAA0LgAk+2 FZwus4m7qPmTGmNG0lpv83WWc8Ili/EfZLCh2MeZhOmrv2ZQ18SWuRnzSVh3gICxnX3lRXhm vqKymVfv/LDlJRtmtT1Lrs7TpPBxWgVlM1andxt4l8EmravG9z3eeHarG223CSZkBq+JBgDB jVJT8TKBhp3da5yVqcnyuDD2wvwvwVT5jgJaVmd7HYwXW2LoKU0akAAv9P5Z5gcNTjqPUCX+ 7aewibKlrDepQU8h3QomxgNDh/qXEin/+t0Br57HKg1Hp6BfbJOlxpS7wSPtn01RmTe9+YlJ Fiyd4lt+q5NWv8LtqL07veYTJYJhTPumKuVO0zpZdIvaU9qatrE/DgIET1/WAC2A97INb/lU sYTqg+/avIPZV3edcOPy1e5Vgkmb20XQIWmx2zBvV7e14jj3XWZYzUp7XJrKciGU2Hqk/7P0 KF/yhU4vfCWG+C2NchetANCHUTbFJ58Who+eOJapbZBwqrffxS5VbSCA7NTJZNDKyeXagKph l049uUj/aaeirx1gfXpyZ6KMt1ghOaaNL3HQaKcNQ4jeCHBQ==
  • Ironport-sdr: hVRqE7I6v8c+CMYcuoj5RoKAMPBaX+579rOFwTz1Q2ZeNFipWijvHXWQOcHATO1+ITBLFN1SIi osoyWej5fd25JEsmHNcOLhCn6InjNBTETF+JzDEMk4Z0LdqOTibUxiORerVC6MQ70mzqnWw83F t2qTaK6AU/C1KS/r2CltIcrIl9WqooQ9gsWDBGy/nvX6LaDMlfKgzRB+07LucvkNfWPXaZQJXO k4NetObZjozI6XrkoviHTKPgzUCTosCYwJaATQm4hrc/51bN5S2HIMiQ+dkh7GzQnG1rSBFeqf H+Y=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Tue, Apr 27, 2021 at 03:40:24PM +0200, Jan Beulich wrote:
> 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 ...

It's hard to tell whether I would prefer that option without seeing
it. In any case, the change is an improvement overall as the logic
gets shared between architectures, so I don't plan to hold it just
because of the placement nit:

Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

Thanks, Roger.



 


Rackspace

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