Current-Users archive

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

Re: compile libukfs/ukfs.ln fails on amd64

Greg Oster <> writes:
>> Anyway, how do we tell make that it should just execute everything
>> sequentially?  .WAITs?  I can't test as I can't repeat the problem.
> I think in src/sys/rump/librump/rumpkern/Makefile.rumpkern you'd need 
> to split this:
> rumpdefs.h rumpvnode_if.h rumpvnode_if.c: vnode_if.c \
>   ...
> into:
> rumpdefs.h: vnode_if.c \
>   ...
> rumpvnode_if.h: vnode_if.c \
>   ...
> rumpvnode_if.c: vnode_if.c \
>   ...
> I suspect the issue here is that one branch of the build is trying to
> build rumpdefs.h, and one rumpvnode_if.h, and one rumpvnode_if.c, but 
> that results in the same Makefile bits being executed for all 3.

In my experience, that leads to the same problem as if the targets are
are part of of the same rule.  One common workaround for this problem
is to introduce a "stamp" file to serialize the build, like this.

   rumpdefs.h rumpvnode_if.h rumpvnode_if.c: rump-stamp

   rump-stamp: vnode_if.c
       touch $@

bmake's .NOTPARALLEL would probably work too, at the expense of
serializing the entire directory.

I've never used .WAIT, but the from the manpage it appears to be 
used for serializing dependencies rather than build targets.


J.T. Conklin

Home | Main Index | Thread Index | Old Index