Hi Jacob, Thanks for the quick response. At 2024-12-01T23:48:09-0600, Jacob Bachmeyer wrote: > On 12/1/24 21:03, G. Branden Robinson wrote: > > [...] > > > > So the "good tr" branch is being taken in the configure script, but not > > in vivo at a shell prompt. I can't explain this. > > First question: what shell is configure actually running under? > > Autoconf makes an effort to find a plausible POSIX shell, and /bin/sh > on Solaris 10 is not it. The copy of bash-3.2 you used for > interactive testing was probably not it either. I seem to recall that > grepping config.status for CONFIG_SHELL should tell you. Here's what I get. $ grep CONFIG_SHELL config.status SHELL=${CONFIG_SHELL-/bin/bash} $as_echo "running CONFIG_SHELL=/bin/bash $*" >&6 CONFIG_SHELL='/bin/bash' export CONFIG_SHELL $ /bin/bash --version GNU bash, version 3.2.51(1)-release (sparc-sun-solaris2.10) Copyright (C) 2007 Free Software Foundation, Inc. > Off the top of my head, try `CONFIG_SHELL=/full/name/of/bash-3.2 > configure` and see if the test works. Okay, I did. The mystery would appear to deepen. The same grep gets the same results. I drive the build from a shell script because building on Solaris 10 _or_ 11 is a headache. I'm attaching the script. > > Would someone kindly point out my rookie mistake? > I am not so certain that this is exactly a rookie mistake---it looks > like you may have uncovered a shell bug, but in which shell? I am baffled that bash 3.2 would behave one way interactively and another when run via configure. Presumably something else is going on? Regards, Branden
#!/bin/sh export MAKE=make if [ "$(uname -s)" = SunOS ] then export PATH=/usr/xpg4/bin:$PATH export MAKE=$(which gmake) export AR=$(which gar) if [ "$(uname -r)" = 5.10 ] then #export M4=$(which gm4) export CONFIG_SHELL=/bin/bash fi fi gs=absent urw=absent urw_dir=/usr/share/fonts/type1/urw-base35 test -f /usr/bin/gs && gs=present # fontconfig might litter this directory with a .uuid file >:-( if [ -d $urw_dir ] then count=$(find $urw_dir -type f | wc -l) test $count -gt 1 && urw=present fi echo SCENARIO: urw $urw, gs $gs ./configure --prefix=$HOME \ && $MAKE if [ $? = 0 ] then # Expect test failures on Solaris 10. if [ "$(uname -s)" = SunOS ] && [ "$(uname -r)" = 5.10 ] then # Fix up the test scripts to use a POSIX shell. gsed -i -e '1s@#!/bin/sh@#!/usr/xpg4/bin/sh@' \ `find . -name '*.sh' | grep /tests/` $MAKE check $MAKE install install-doc \ && $MAKE uninstall \ && $MAKE distclean else echo GBR: PATH=$PATH $MAKE check \ && $MAKE install install-doc \ && $MAKE uninstall \ && $MAKE distclean fi fi list=$(find $HOME/bin $HOME/lib $HOME/share -type f) if [ -n "$list" ] then echo '*** installation directories are NOT clean (.../info/dir is OK)' else echo '$HOME/{bin,lib,share}' directories are clean fi
Attachment:
signature.asc
Description: PGP signature