diff --git a/configure b/configure
index a6cde1508ca794def50f8cb79946ca68262f48fd..68fb834a2ff4bbd3426e5f16e9fcf29564c6c23c 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+cd `dirname "$0"`
 . package/info
 
 usage () {
@@ -368,7 +369,22 @@ else
   cross=
 fi
 echo "checking for C compiler..."
-trycc ${cross}${CC}
+trycc ${CC}
+if test -n "$CC_AUTO" ; then
+  b=`basename "$CC"`
+  adjust_cross=false
+  if test "$b" != "$CC" ; then
+    adjust_cross=true
+    echo "$0: warning: compiler $CC is declared with its own path. If it's not accessible via PATH, you will need to pass AR, RANLIB and STRIP make variables to the make invocation." 1>&2
+  fi
+  if test -n "$cross" ; then
+    if test "$b" = "${b##$cross}" ; then
+      echo "$0: warning: compiler $CC is declared as a cross-compiler for target $target but does not start with prefix ${cross}" 1>&2
+    elif $adjust_cross ; then
+      cross=`dirname "$CC"`/"$cross"
+    fi
+  fi
+fi
 trycc ${cross}gcc
 trycc ${cross}clang
 trycc ${cross}cc