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

From: Andreas Kupries <[email-masked]>
Date: Mon, 08 Aug 2011 12:50:32 -0700

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.

First, from a plain run, no modifications ... My log file shows

	CONF checking whether the shell understands some XSI constructs... yes
	CONF checking whether the shell understands "+="... yes

Given that the code snippet seems to check the shell executing the configure 
script this is to be expected, as I am explicitly using bash to run all my 
configure scripts.

/Configure Run
[/export/home/andreask/dbn/BuildTmp/Hwloc/solaris2.8-sparc/build]: executing 
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
	bash = /usr/local/bin/bash
CONF
[... remainder of the log]

The generated Makefile and libtool however have SHELL=/bin/sh
assignments in them, and without me forcing them to use bash they fiail.

Next up, your proposed modification to force them into the belief of not having 
a XSI shell available.

Now the log contains

	CONF checking whether the shell understands some XSI constructs... no
	CONF checking whether the shell understands "+="... no

The generated Makefile and libtool script also contain SHELL=/bin/sh, and
the build works.

So, what seems to happen is that during the generation of Makefile and libtool 
the shell is always set as "/bin/sh", regardless of which shell was used to run 
the configure (bash in my case), and this can then lead to a mismatch between 
what configure thinks it has available as features (XSI  yes), versus the 
features of the actual shell used during the build (XSI no).

> At configure time you should see 'checking whether the shell understands some XSI constructs...' and
> 'checking whether the shell understands "+="...' tests, and the generated libtool script should
> contain definitions of the shell functions listed above that match the results of those tests.
> Similarly, ltmain.sh should always contain the unsubstituted implementations of those functions,
> because _LT_PROG_FUNCTION_REPLACE only knows how to splice in the XSI implementations on demand,
> and doesn't know how to go back the other way if the configure tests find XSI features don't work.
>

-- 
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