I have been investigating why a load of 1.8.2 self tests fail for me, in particular the autohdr4.test.
After loads of hacking, I have established the problem is a portability issue in the sh code generated by the _AM_DEPENDENCIES macro. What happens is that the generated configure script fails to create all the dependency type check input header files, which in turn causes the code to decide the compiler dependency type is "none", which then causes the autohdr4 test to fail (because the binary does not get re-compiled when the config.bot file is changed). The failure occurs if the configure script is invoked using the Solaris 5.8 /bin/sh, but ONLY if CONFIG_SHELL is set to a different shell. If configure is simply invoked using "/bin/sh configure", without CONFIG_SHELL set, it will re-invoke itself using bash and hence the bug will NOT be seen. What actually fails is the _AM_DEPENDENCIES compiler dependency type check, which automake hooks into AC_PROG_CC. The following piece of sh code (from _AM_DEPENDENCIES) fails using /bin/sh or /usr/bin/sh (but works using bash or /usr/xpg4/bin/sh):- : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c : > sub/conftst$i.h done It appears that the processing of the "null" command ":" is handled in an inconsistent way by the Solaris sh. In particular the ": > sub/conftst$i.h" inside the loop only creates ONE file.... Presumable the $i in the redirection only gets evaluated once for some reason. I am not sure what the most portable fix would be, but replacing the all the ": >"s with "echo >"s works for me! See the output from the following test code for the different shells:- ---------------------------------------------------------------------- #!/bin/sh rm -fr sub mkdir sub : > sub/xx for i in 1 2 3 4 5 6; do : > sub/conftst$i.h done ls -R sub ---------------------------------------------------------------------- /bin/sh -vx ~/tmp/broken.sh #!/bin/sh rm -fr sub + rm -fr sub mkdir sub + mkdir sub : > sub/xx + : for i in 1 2 3 4 5 6; do : > sub/conftst$i.h done + : + : + : + : + : + : ls -R sub + ls -R sub sub: conftst1.h xx ---------------------------------------------------------------------- Using bash or /usr/xpg4/bin/sh it works:- ---------------------------------------------------------------------- /usr/xpg4/bin/sh -vx ~/tmp/broken.sh #!/bin/sh rm -fr sub + rm -fr sub mkdir sub + mkdir sub : > sub/xx + : + 1> sub/xx for i in 1 2 3 4 5 6; do : > sub/conftst$i.h done + : + 1> sub/conftst1.h + : + 1> sub/conftst2.h + : + 1> sub/conftst3.h + : + 1> sub/conftst4.h + : + 1> sub/conftst5.h + : + 1> sub/conftst6.h ls -R sub + ls -R sub sub: conftst1.h conftst2.h conftst3.h conftst4.h conftst5.h conftst6.h xx ---------------------------------------------------------------------- Cheers Mark Phillips -- Mark S. Phillips ESN 742 2461 [EMAIL PROTECTED] Tel. +44 1279 402461 Nortel Networks plc, London Road, Harlow, Essex, CM17 9NA [Co #3937799, Registered office address: Maidenhead Office Park, Westacott Way, Maidenhead, Berkshire SL6 3QH.]