Hi Eric. On 11/07/2012 06:18 PM, Eric Blake wrote: > On 11/07/2012 09:56 AM, Adrian Bunk wrote: >> On Wed, Nov 07, 2012 at 05:33:54PM +0100, Stefano Lattarini wrote: >>> On 11/07/2012 04:41 PM, Paul Eggert wrote: >>>> On 11/07/2012 04:37 AM, Stefano Lattarini wrote: >>>>> I want to be able to assume the make recipes >>>>> are run by a POSIX shell. >>>> >>>> Thanks. >>>> >>>> Are all the features you're testing for specified by >>>> POSIX 1003.2-1992? (That is, are they all suitably *old* POSIX?) >>>> >>> I'm not really sure: I only looked at the last standard available >>> online on the Austing Group site: >>> >>> <http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html> >>> >>> In any case, the features required seem common and simple enough, and >>> I'd rather start aiming a little high, and then lower our expectations >>> if we hit a real-world shell that doesn't support all the features >>> we are testing >>> ... >> >> That sounds like a recipe for getting emergency 2.71, 2.72 and 2.73 >> releases, plus bad press as a bonus. > > What we've done in the past is to do a release that probes for the new > features but does not mandate them, where the probe is quite verbal to > tell people to report the situation if the probe fails; then the next > release can actually start relying on the features. (Remember how we > did it when we started requiring shell functions, for example). That > is, autoconf 2.70 must provide the mechanisms for checking for a POSIX > shell, and even allow clients like automake to use those mechanisms to > require a POSIX shell, but autoconf itself won't require a POSIX shell > until 2.71 at the earliest, even though 2.70 is probing for one. > Actually, my patch make the Autoconf-generated configure *require* a POSIX shell... I mean, what system worth supporting today doesn't have such a shell *somewhere*? What we can't do (thank you, Solaris) is assume that /bin/sh is a POSIX shell; and my patch doesn't change that assumption: it just uses the existing infrastructure to look for a proper POSIX shell at runtime, assuming only old Bourne features until that point.
Of course, if you want to proceed with your slower & safer path, that's OK with me (albeit I believe that's overkill); feel free to adapt my patch accordingly, or to write a follow-up on it. Regards, Stefano