diff --git a/ChangeLog b/ChangeLog
index 14493f07fa858618977bac52e8394f6dfd1d93e4..a269c2aa3b4855fd0f473879a587673a6f6e505b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Apr 11 23:55:34 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
+	
+	* config-ml.in: On mips*-*-*, if multidirs contains mabi=64, try to
+	link a trivial program with -mabi=64.  If it fails, remove mabi=64
+	from multidirs.
+
 Sat Apr 10 21:50:01 1999  Philipp Thomas  (kthomas@gwdg.de)
 
 	* config.sub: Set basic_machine to i586 when target_alias = k6-*.
diff --git a/config-ml.in b/config-ml.in
index 3a159cf31d4d42e9639f9c66d6684ef801fdbd65..ed8b1edfaf4e62fc757591a4d3b2937aae699337 100644
--- a/config-ml.in
+++ b/config-ml.in
@@ -299,6 +299,28 @@ mips*-*-*)
 	    esac
 	  done
 	fi
+	case " $multidirs " in
+	*" mabi=64 "*)
+	  # We will not be able to create libraries with -mabi=64 if
+	  # we cannot even link a trivial program.  It usually
+	  # indicates the 64bit libraries are missing.
+	  if echo 'main() {}' > conftest.c &&
+	     ${CC-gcc} -mabi=64 conftest.c -o conftest; then
+	    :
+	  else
+	    echo Could not link program with -mabi=64, disabling it.
+	    old_multidirs="${multidirs}"
+	    multidirs=""
+	    for x in ${old_multidirs}; do
+	      case "$x" in
+	      *mabi=64* ) : ;;
+	      *) multidirs="${multidirs} ${x}" ;;
+	      esac
+	    done
+	  fi
+	  rm -f conftest.c conftest
+	  ;;
+	esac
 	;;
 powerpc*-*-* | rs6000*-*-*)
 	if [ x$enable_softfloat = xno ]