diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7fda91053e10796bc5325a59c0f230bc1e7376da..e63ecbc9cc4b77ce2401853f50b62e988a7b58b2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2000-11-09  Alexandre Oliva  <aoliva@redhat.com>
+
+	* mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
+	interpreting $out as a macro assignment.
+	* Makefile.in (T_TARGET): New auxiliary macro and target.
+	(all): Add a target right in the beginning, so that we don't build
+	T_TARGET by default.
+
 2000-11-09  Graham Stott  <grahams@redhat.com>
 
         * config/i386/i386.md (mmx_pinsrw): Output operands in correct
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 2fefb3f14446e5ae2cdae7f32f2249febd14ff10..3b2e8d9ca0b4ab35cc87e98ff7ae7a9e4a97ac32 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -24,6 +24,9 @@
 # uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean,
 # stage1, stage2, stage3, stage4.
 
+# This is the default target.
+all:
+
 # Suppress smart makes who think they know how to automake Yacc files
 .y.c:
 
@@ -562,6 +565,11 @@ CRT0STUFF_T_CFLAGS =
 # "t" or nothing, for building multilibbed versions of, say, crtbegin.o.
 T =
 
+# Should T contain a `=', libgcc.mk will make T_TARGET, setting
+# $(T_TARGET) to the name of the actual target filename.
+T_TARGET =
+T_TARGET : $(T_TARGET)
+
 # End of variables for you to override.
 
 # Definition of `all' is here so that new rules inserted by sed
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index e9dc22cb7a26c061c6ef990289e8b9cb0cd7ea30..1953da47288923a1808c614c3976b17590599886 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -363,13 +363,18 @@ for f in $EXTRA_MULTILIB_PARTS; do
     flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
     case $dir in
     .) out=$f ; t= ;;
-    *) out="$dir/$f" ; t=$dir/ ;;
+    *) out=$dir/$f ; t=$dir/ ;;
+    esac
+    case $out in
+    # Prevent `make' from interpreting $out as a macro assignment
+    *'$(EQ)'*) targ="T_TARGET=$out T_TARGET" ;;
+    *) targ=$out ;;
     esac
 
     echo $out: stmp-dirs
     echo "	$make_compile" \\
     echo '	  LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
-    echo '	  MULTILIB_CFLAGS="'$flags'"' T=$t $out
+    echo '	  MULTILIB_CFLAGS="'$flags'"' T=$t $targ
 
     all="$all $out"
   done