diff -r 98a7af257bee -r 754f91d22e1c common/autoconf/basics.m4 --- a/common/autoconf/basics.m4 Mon Dec 03 10:26:55 2012 +0100 +++ b/common/autoconf/basics.m4 Wed Dec 05 09:39:34 2012 +0100 @@ -129,7 +129,7 @@ if test "x$READLINK_TESTED" != yes; then # On MacOSX there is a readlink tool with a different # purpose than the GNU readlink tool. Check the found readlink. - ISGNU=`$READLINK --help 2>&1 | $GREP GNU` + ISGNU=`$READLINK --version 2>&1 | $GREP GNU` if test "x$ISGNU" = x; then # A readlink that we do not know how to use. # Are there other non-GNU readlinks out there? @@ -141,20 +141,24 @@ if test "x$READLINK" != x; then $1=`$READLINK -f [$]$1` else + # Save the current directory for restoring afterwards STARTDIR=$PWD COUNTER=0 sym_link_dir=`$DIRNAME [$]$1` sym_link_file=`$BASENAME [$]$1` + # Use the system pwd and not the shell builtin to resolve directory symlinks + cd $sym_link_dir + cd `$THEPWDCMD` + sym_link_dir=`$THEPWDCMD` + # Resolve file symlinks while test $COUNTER -lt 20; do ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'` if test "x$ISLINK" == x; then # This is not a symbolic link! We are done! break fi - # The link might be relative! We have to use cd to travel safely. - cd $sym_link_dir - # ... and we must get the to the absolute path, not one using symbolic links. - cd `pwd -P` + # Again resolve directory symlinks since the target of the just found + # link could be in a different directory cd `$DIRNAME $ISLINK` sym_link_dir=`$THEPWDCMD` sym_link_file=`$BASENAME $ISLINK` @@ -286,7 +290,7 @@ # Where is the source? It is located two levels above the configure script. CURDIR="$PWD" cd "$AUTOCONF_DIR/../.." -SRC_ROOT="`pwd`" +SRC_ROOT="`$THEPWDCMD`" if test "x$OPENJDK_TARGET_OS" = "xwindows"; then PATH_SEP=";"