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