[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/45875: usr.bin/make: make -B not using a shell for every command
The following reply was made to PR bin/45875; it has been noted by GNATS.
From: Marko =?UTF-8?B?U2Now7x0eg==?= Schmuck <MarkoSchuetz%web.de@localhost>
Subject: Re: bin/45875: usr.bin/make: make -B not using a shell for every
Date: Tue, 28 Feb 2012 17:45:45 -0400
Content-Type: text/plain; charset=UTF-8
At Sat, 28 Jan 2012 00:50:04 +0000 (UTC),
Marko Sch=C3=BCtz-Schmuck wrote:
> The following reply was made to PR bin/45875; it has been noted by GNATS.
> From: =3D?ISO-8859-1?Q?Marko_Sch=3DFCtz=3D2DSchmuck?=3D <markoschuetz@goo=
> To: gnats-bugs%netbsd.org@localhost
> Cc: netbsd-bugs%netbsd.org@localhost, MarkoSchuetz%web.de@localhost,
> Subject: Re: bin/45875: usr.bin/make: make -B not using a shell for every=
> Date: Fri, 27 Jan 2012 20:45:01 -0400
> Content-Type: text/plain; charset=3DISO-8859-1
> On Jan 27, 2012 12:25 PM, "David Holland"
> <dholland-bugs%netbsd.org@localhost> wro=
> > The following reply was made to PR bin/45875; it has been noted by GNA=
> > From: David Holland <dholland-bugs%netbsd.org@localhost>
> > To: gnats-bugs%NetBSD.org@localhost
> > Cc:
> > Subject: Re: bin/45875: usr.bin/make: make -B not using a shell for ev=
> > command
> > Date: Fri, 27 Jan 2012 16:22:38 +0000
> > On Thu, Jan 26, 2012 at 11:35:02PM +0000, Marko Sch?tz Schmuck wrote:
> > > > That's in a separate invocation, as advertised. What are you
> > > > complaining about? That it skips going through the shell for si=
> > > > commands?
> > >
> > > Yes, that's what I am complaining about. It says that it executes a
> > > "single shell per command". Also there is the target .SINGLESHELL =
> > > documented in the man page) that sets compatMake to true. The chan=
> > > propose would also make that work.
> > That's a feature, not a bug. If you find a case where it fails, that
> > is, where make thinks it knows how to execute some piece of shell
> > syntax itself but gets it wrong, please file a bug report. The
> > behavior as it is should be completely equivalent, except faster.
> a.) The shell invocation is supposed to use .SHELL specification, which=
> course allows the while command to be rewritten
> b.) The shell invocation will be subject to various expansions (eg. alias
> expansion) to which execve will not be subjected
> So I think the assumption that execve.is just a faster version of execut=
> a command through the shell (even for well-behaved cases) is wrong. And
> definitely when the user asks explicitly for individual shells...
> Best regards,
> > The important thing about how many shells it invokes is the scope of
> > shell actions like "cd".
> > --
> > David A. Holland
> > dholland%netbsd.org@localhost
It would also be more in line with POSIX:
"The execution line shall then be executed by a shell as if it were
passed as the argument to the system() interface, except that the
shell -e option shall also be in effect. The environment for the
command being executed shall contain all of the variables in the
environment of make."
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
-----END PGP SIGNATURE-----
Main Index |
Thread Index |