[prev in list] [next in list] [prev in thread] [next in thread] 

List:       autoconf
Subject:    Re: config.sub/config.guess using nonportable $(...) substitutions
From:       Tim Rice <tim () multitalents ! net>
Date:       2021-03-09 1:06:13
Message-ID: alpine.UW2.2.11.2103081656450.22099 () server01 ! int ! multitalents ! net
[Download RAW message or body]

On Mon, 8 Mar 2021, Nick Bowler wrote:

> Hi,
> 
> I noticed that config.sub (and config.guess) scripts were very recently
> changed to use the POSIX $(...) form for command substitutions.
> 
> This change is, I fear, ill-advised.  The POSIX construction is
> widely understood to be nonportable as it is not supported by
> traditional Bourne shells such as, for example, Solaris 10 /bin/sh.
> This specific portability problem is discussed in the Autoconf manual
> for portable shell programming[1].
> 
> These scripts using $(...) are incorporated into the recently-released
> Automake 1.16.3, which means they get copied into packages bootstrapped
> with this version.  So now, if I create a package using the latest bits,
> configuring with heirloom-sh fails:
> 
>   % CONFIG_SHELL=/bin/jsh jsh ./configure CONFIG_SHELL=/bin/jsh
>   configure: error: cannot run /bin/jsh ./config.sub

But why would you use CONFIG_SHELL= to specify a less capable shell?
It is there to specify a more capable shell in case it is not already
detected.

Now if an autoconf built configure attempts to run config.guess/config.sub
before detecting a capapable shell and exec(ing) itself, then that is
not so good.

>   % jsh config.sub x86_64-pc-linux-gnu
>   config.sub: syntax error at line 53: `me=$' unexpected
> 
> (The heirloom-sh is essentially Solaris /bin/sh but runs on GNU/Linux systems).

-- 
Tim Rice				Multitalents
tim@multitalents.net



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic