diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-11-22 04:43:29 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-11-22 04:43:29 +0000 |
commit | 2e2a97a6830e320aea4080daa62a7cee8c91e9df (patch) | |
tree | 9ccca97c02b9ff56a5266e4567bfb8cb5a9b4d05 /Configure | |
parent | b9f751c0c83936edb2414f3db711d9aed06f58af (diff) | |
download | perl-2e2a97a6830e320aea4080daa62a7cee8c91e9df.tar.gz |
The #13182 didn't really help. The real problem
seems to be that 'sh' can in AIX mean at least three
different things, and we can't know which one it is
unless we export $newsh from an earlier run (and it's
the 'bsh' aka 'sh' that has the the broken test -h).
p4raw-id: //depot/perl@13188
Diffstat (limited to 'Configure')
-rwxr-xr-x | Configure | 42 |
1 files changed, 32 insertions, 10 deletions
@@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Thu Nov 22 01:31:19 EET 2001 [metaconfig 3.0 PL70] +# Generated on Thu Nov 22 07:43:52 EET 2001 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <<EOF @@ -141,6 +141,7 @@ EOM esac case "$changesh" in true) + export newsh echo "(Feeding myself to $newsh $reason.)" case "$0" in Configure|*/Configure) exec $newsh $0 "$@";; @@ -2262,22 +2263,43 @@ case "$lns" in echo "Checking how to test for symbolic links..." >&4 $lns blurfl sym if $test "X$issymlink" = X; then - sh -c "PATH= test -h sym" >/dev/null 2>&1 + case "$newsh" in + '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;; + *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;; + esac if test $? = 0; then issymlink="test -h" + else + echo "Your builtin 'test -h' may be broken." >&4 + case "$test" in + /*) ;; + *) pth=`echo $PATH | sed -e "s/$p_/ /g"` + for p in $pth + do + if test -f "$p/$test"; then + test="$p/$test" + break + fi + done + ;; + esac + case "$test" in + /*) + echo "Trying external '$test -h'." >&4 + issymlink="$test -h" + if $test ! -h sym >/dev/null 2>&1; then + echo "External '$test -h' is broken, too." >& 4 + issymlink='' + fi + ;; + *) issymlink='' ;; + esac fi fi - case "$issymlink" in - "test -h") - if $test -h >/dev/null 2>&1; then - issymlink="/bin/test -h" - echo "Your builtin 'test -h' may be broken, I'm using external '/bin/test -h'." >&4 - fi - ;; - esac if $test "X$issymlink" = X; then if $test -L sym 2>/dev/null; then issymlink="$test -L" + echo "The builtin '$test -L' worked." >&4 fi fi if $test "X$issymlink" != X; then |