Subject: Re: bug#9249: Does Libtool 2.4 support Solaris 2.8?

From: Andreas Kupries <[email-masked]>
Date: Mon, 08 Aug 2011 13:31:21 -0700

On 8/8/2011 1:09 PM, Gary V. Vaughan wrote:
> Hi Andreas,
>
> On 9 Aug 2011, at 02:50, Andreas Kupries wrote:
>> On 8/5/2011 8:18 PM, Gary V. Vaughan wrote:
>>> Here's the snippet from libtool's generated configure script:
>>
>> Found it ...
>>
>>> Can you investigate some more and report your findings back to the list?
>>
>> Sure.
>
> Thanks for following up.
>
>> bash ../../src/configure --prefix=/export/home/andreask/dbn/BuildTmp/Hwloc/solaris2.8-sparc/install --exec-prefix=/export/home/andreask/dbn/BuildTmp/Hwloc/solaris2.8-sparc/install --with-tcl=/export/home/andreask/dbn/BuildTmp/Hwloc/solaris2.8-sparc/install/lib --with-tk=/export/home/andreask/dbn/BuildTmp/Hwloc/solaris2.8-sparc/install/lib --enable-shared --enable-threads
>> [[...]]
>> The generated Makefile and libtool however have SHELL=/bin/sh
>> assignments in them, and without me forcing them to use bash they [[fail]].
>
> Ah, I see the problem.
>
> You needn't tell Autotools that you have a preferred shell

Wel, I was not reall aware of telling it about a prefered shell, just executing 
configure via bash.

Actually, I am kind of surpised that it is apparently possible to run configure 
with a shell A, under which tests are run, and then having it generate files 
for a shell B it considers preferable, but was not tested against.

 > to the one it looks for by itself (and actually, if you just let configure 
run with whatever shell it can get,
 > it might even find and choose /usr/local/bin/bash provided that you have 
/usr/local/bin in your command search
 > PATH, and provided that there is not a shell called 'sh' also somewhere in 
PATH that provides all the features
 > Autotools is looking for.

So, is 'configure' re-exec'uting itself with a different shell, if it finds 
whatever it prefers ?

>
>      [snippet elided]
>
> Generally, bash is an excellent shell to use interactively, but it is a little buggy and considerably slower
 > than some of the cut down shells  such as Debian's /bin/sh which is a link 
to the lightning fast Almqvist shell.
 > Unless you are experiencing real problems with the shell that configure 
selects for you, then you probably shouldn't need to force another shell.

bash is simply the shell of choice here for both interactive and scripting use. 
Which we know to have everywhere, with a consistent set of features.

> However, you can safely force an alternative shell to execute the various Autotools scripts by setting both SHELL and CONFIG_SHELL, like so:
>
>     ./configure SHELL=/usr/local/bin/bash CONFIG_SHELL=/usr/local/bin/bash<other arguments as usual>

Is it possible to set this through the environment as well ? (It might be 
easier for the build setup here to put this into the environment of ./configure 
when it is run. Have to re-check).

I should note that SHELL is set in the global environment too, to 'path/to/bash'.
Its apparently only CONFIG_SHELL I might have to set.

> That should ensure that SHELL is then set correctly in libtool and Makefile to match the tests that configure ran earlier.

Thanks for all the help.

-- 
Andreas Kupries
Senior Tcl Developer
ActiveState, The Dynamic Language Experts

P: 778.786.1122
F: 778.786.1133
[email-masked]
http://www.activestate.com
Get insights on Open Source and Dynamic Languages at www.activestate.com/blog