diff --git a/ld/ChangeLog b/ld/ChangeLog
index 734397a8879..16e607df3e3 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+1999-06-20  H.J. Lu  <hjl@gnu.org>
+
+	* configure.in (all_libpath): Accumulate across all enabled targets.
+
 Sun Jun 20 14:10:33 1999  Richard Henderson  <rth@cygnus.com>
 
 	* emultempl/armelf.em: Watch EMULATION_LIBPATH instead of
diff --git a/ld/configure b/ld/configure
index 6f159df75c1..3077236efe0 100755
--- a/ld/configure
+++ b/ld/configure
@@ -4723,6 +4723,7 @@ all_targets=
 EMUL=
 all_emuls=
 all_emul_extras=
+all_libpath=
 
 rm -f tdirs
 
@@ -4757,12 +4758,15 @@ do
 	esac
     done
 
-    all_libpath=$targ_emul
-    for i in $targ_extra_libpath; do
+    for i in $targ_emul $targ_extra_libpath; do
 	case " $all_libpath " in
 	*" ${i} "*) ;;
 	*)
-	  all_libpath="$all_libpath ${i}"
+	  if test -z "$all_libpath"; then
+	    all_libpath=${i}
+	  else
+	    all_libpath="$all_libpath ${i}"
+	  fi
 	  ;;
 	esac
     done
diff --git a/ld/configure.in b/ld/configure.in
index 9e8c964a0a9..ef87b9ea21b 100644
--- a/ld/configure.in
+++ b/ld/configure.in
@@ -74,6 +74,7 @@ all_targets=
 EMUL=
 all_emuls=
 all_emul_extras=
+all_libpath=
 
 dnl We need to get an arbitrary number of tdir definitions into
 dnl Makefile.  We can't do it using AC_SUBST, because autoconf does
@@ -112,12 +113,15 @@ do
 	esac
     done
 
-    all_libpath=$targ_emul
-    for i in $targ_extra_libpath; do
+    for i in $targ_emul $targ_extra_libpath; do
 	case " $all_libpath " in
 	*" ${i} "*) ;;
 	*)
-	  all_libpath="$all_libpath ${i}"
+	  if test -z "$all_libpath"; then
+	    all_libpath=${i}
+	  else
+	    all_libpath="$all_libpath ${i}"
+	  fi
 	  ;;
 	esac
     done