|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86emul: fix test harness and fuzzer build dependencies
>>> On 20.12.18 at 15:46, <ian.jackson@xxxxxxxxxx> wrote:
> Jan Beulich writes ("[PATCH] x86emul: fix test harness and fuzzer build
> dependencies"):
>> --- a/tools/fuzz/x86_instruction_emulator/Makefile
>> +++ b/tools/fuzz/x86_instruction_emulator/Makefile
> ...
>> +$(XEN_ROOT)/tools/include/xen/lib/x86/cpuid-autogen.h: FORCE
>> + $(MAKE) -C $(XEN_ROOT)/tools/include build
>
> I think this introduces a `make -j' hazard ? The problem is that this
> branch of the Makefiles tree might enter tools/include while
> another branch is also doing so, resulting in two simultaneous
> executions in the same directory.
What is "another branch" here? So far I was under the impression
that the ability of building x86 emulator fuzzer and test harness
independently is an exception, and that all other parts of the
tools/ subtree are supposed to be built by going through the top
level. Otherwise further dependency issues might arise, due to
top level Makefile's %-tools-public-headers rule.
Hence whether there's a "make -j" hazard here depends on what
that top level rule's purpose is.
>> @@ -27,10 +28,12 @@ ifeq ($(CONFIG_X86),y)
>> for f in $(filter-out %autogen.h,$(patsubst
> $(XEN_ROOT)/xen/include/xen/lib/x86/%,%,Makefile $(wildcard
> $(XEN_ROOT)/xen/include/xen/lib/x86/*.h))); do \
>> ln -sf $(XEN_ROOT)/xen/include/xen/lib/x86/$$f xen/lib/x86/$$f;
>> \
>> done
>> - $(MAKE) -C xen/lib/x86 all XEN_ROOT=$(XEN_ROOT)
>> endif
>> touch $@
>>
>> +all-$(CONFIG_X86): xen/.dir
>> + $(MAKE) -C xen/lib/x86 all XEN_ROOT=$(XEN_ROOT)
>
> And here we have a pre-existing instance of the same bug, I think ?
>
> With recursive make you can't just
> $(MAKE) -C .../this
> $(MAKE) -C .../that
> because of this race problem. You need to sequence the subdirectories
> correctly in the parent Makefiles so that by the time `here' is
> entered, its dependency directories are already finished.
In general - yes. But with the way the tools/include/ tree gets
populated, I don't think so.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |