On Fri, 12 May 2000, David O'Brien wrote:

> On Fri, May 12, 2000 at 04:41:09PM +0900, Munehiro Matsuda wrote:
> > When run 'make -j4 buildworld' with internat crypto code installed, 
> > I get following error:
> > mkdir: openssl: File exists
> > *** Error code 1
> > -   @test -d openssl || mkdir -p openssl
> > +   -@mkdir -p openssl
> 
> The "-" is not needed as `mkdir -p' will not return an error condition.
> 
> > -   @test -d openssl || mkdir -p openssl
> > +   -@mkdir -p openssl
> 
> Same here.  Bruce Evans just told me the other day that make(1) can have
> issues with shell "&&" and "||".  Guess you hit one of the cases it can
> fail with -j.

I guess the bug is a more normal one for -j4 -- broken dependencies may
cause a rule to be repeated concurrently.  Multiple concurrent
"mkdir -p openssl"s may loses races to each other and fail despite the -p.
The "-" then hides the bug.  The semantics of -p only hides it if the
races are external to the mkdirs.

Putting @ before commands mainly breaks debugging.  E.g., here it may hide
the multiple invocations of mkdir -p.

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to