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

Re: [PATCH] libxl: avoid golang building without CONFIG_GOLANG=y



On 04.08.2020 18:41, Nick Rosbrook wrote:
> On Tue, Aug 4, 2020 at 12:02 PM Jan Beulich <jbeulich@xxxxxxxx> wrote:
>>
>> On 04.08.2020 17:57, Wei Liu wrote:
>>> On Tue, Aug 04, 2020 at 05:53:49PM +0200, Jan Beulich wrote:
>>>> On 04.08.2020 17:50, Wei Liu wrote:
>>>>> On Tue, Aug 04, 2020 at 05:30:40PM +0200, Jan Beulich wrote:
>>>>>> On 04.08.2020 17:22, Nick Rosbrook wrote:
>>>>>>> On Tue, Aug 4, 2020 at 10:17 AM Wei Liu <wl@xxxxxxx> wrote:
>>>>>>>>
>>>>>>>> On Mon, Aug 03, 2020 at 10:06:32AM +0200, Jan Beulich wrote:
>>>>>>>>> While this doesn't address the real problem I've run into (attempting 
>>>>>>>>> to
>>>>>>>>> update r/o source files), not recursing into tools/golang/xenlight/ is
>>>>>>>>> enough to fix the build for me for the moment. I don't currently see 
>>>>>>>>> why
>>>>>>>>> 60db5da62ac0 ("libxl: Generate golang bindings in libxl Makefile") 
>>>>>>>>> found
>>>>>>>>> it necessary to invoke this build step unconditionally.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Perhaps an oversight?
>>>>>>>
>>>>>>> This is intentional, and I think the commit message in 60db5da62ac0
>>>>>>> ("libxl: Generate golang bindings in libxl Makefile") explains the
>>>>>>> reasoning well. But, to summarize, CONFIG_GOLANG is only used to
>>>>>>> control the bindings actually being compiled (i.e. with `go build`).
>>>>>>> However, we always want the code generation script
>>>>>>> (tools/golang/xenlight/gengotypes.py) to run if e.g.
>>>>>>> tools/libxl/libxl_types.idl is modified.
>>>>>>>
>>>>>>> I hope this helps.
>>>>>>
>>>>>> Not really - I'm still not seeing the "why" behind this behavior. I.e.
>>>>>> why build _anything_ that's not used further in the build, nor getting
>>>>>> installed? Also if (aiui) you effectively object to the change that
>>>>>> Wei has given his ack for, would you mind providing an alternative fix
>>>>>> for the problem at hand?
>>>>>
>>>>> Is the solution here to make the target check if IDL definition file is
>>>>> actually changed before regenerating the bindings?
>>>>
>>>> I don't know - Nick? A move-if-changed based approach would likely deal
>>>> with the r/o source problem at the same time (at least until such time
>>>> where the directory containing the file(s) is also r/o).
>>>
>>> To make sure Nick and I understand your use case correct -- "r/o source
>>> problem" means you want the tools source to be read-only? But you would
>>> be fine recursing into tools directory to build all the libraries and
>>> programs?
>>
>> Yes - until we support out-of-tree builds, nothing more can be expected
>> to work.
>>
> 
> Jan - is the problem specifically that a fresh clone,  or `git
> checkout`, etc. changes file timestamps in a way that triggers make to
> rebuild those targets?

Afaict it's not deterministic in which order files get created / updated,
and hence the generated files may or may not appear older than their
dependencies.

Jan



 


Rackspace

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