Current-Users archive

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

Re: [ANALYSED] kernel object compilation failure unnoticed ?



In article <20100306085120.GA20665%netbsd.org@localhost>,
David Holland  <dholland-current%netbsd.org@localhost> wrote:
>On Fri, Mar 05, 2010 at 01:24:43PM -0500, Greg A. Woods wrote:
> > The only problem I've had with both the elimination of "sh -e" and other
> > trickery make uses to avoid using "sh" when possible is that this is all
> > very confusing.  It's hard sometimes even for an expert to understand
> > the difference between a "complex shell" command and a simple one and to
> > know intuitively when make will see a non-zero exit code from the rule
> > and when it will not.
>
>Not really. Once you remember that each separate line is passed as a
>unit to sh -c, the rest follows from how the shell works.
>
>The real complication is that in make -j mode, our make doesn't do
>that but instead feeds stuff in blobs to the shell's stdin, so the
>effects of operations like cd persist longer than one expects.
>
>This behavior is definitely questionable...

That is why we have .SINGLESHELL or -B. We've lived with this behavior
for many years, and I don't see a particular good reason to change it
as there are many workarounds. I think we should just document better
that by default our make tries to pass all commands in a target to
a single shell.

christos



Home | Main Index | Thread Index | Old Index