See http://sourceware.org/ml/crossgcc/2005-12/msg00110.html Fixes undefined symbol error LIBNSS_FILES_SO when building in glibc/nss when building on Solaris. The underlying problem is that generation of a header file is incorrect because of expected behavior of test -z with an empty string when using the default /bin/sh on Solaris. Thanks to Ingo Bremmer for a suggested patch. =================================================================== --- glibc-2.3.2/Makeconfig Mon Jun 26 07:09:12 2006 +++ glibc-2.3.2.new/Makeconfig Mon Jun 26 19:04:12 2006 @@ -773,10 +776,12 @@ else \ $(abi-default_setname) \ lib=`echo $$version | sed 's/=.*$$//'`; \ - if eval test -z "\$${versioned_$${lib}}"; then \ - eval versioned_$${lib}=yes; \ - number=`echo $$version | sed "s/^.*=//"`; \ - echo $$lib $$number $${setname:-$${default_setname}}; \ + vlib=`eval echo "\$$\{versioned_$${lib}\}"`; \ + vlib=`eval echo $${vlib}`; \ + if test -z "$$vlib" ; then \ + eval versioned_$${lib}=yes; \ + number=`echo $$version | sed "s/^.*=//"`; \ + echo $$lib $$number $${setname:-$${default_setname}};\ fi; \ fi; \ done < $< > $@T; exit 0