diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b2a831b2e198023f01d2aff7fbe899f239d2c5b..61470bb5add1c6f97d0713e6dad7014ebdb9766b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2005-12-29  Daniel Jacobowitz  <dan@codesourcery.com>
+	Paul Brook  <paul@codesourcery.com>
+
+	* config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
+	!TARGET_68020.
+	* config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
+	(EXTRA_MULTILIB_PARTS): Set.
+	* config/m68k/t-uclinux (EXTRA_PARTS): Remove.
+	(EXTRA_MULTILIB_PARTS): Set.
+
 2005-12-29  Alan Modra  <amodra@bigpond.net.au>
 
 	PR target/25572
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 09556d0e14d1b879957eb55754c2aa165ccf52f7..fa3f0e038992be08a5e97e6b259ef8b58fd09dae 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -1057,15 +1057,14 @@ m68k_output_pic_call (rtx dest)
 
   if (!(GET_CODE (dest) == MEM && GET_CODE (XEXP (dest, 0)) == SYMBOL_REF))
     out = "jsr %0";
-      /* We output a BSR instruction if we're using -fpic or we're building for
-	 a target that supports long branches.  If we're building -fPIC on the
-	 68000, 68010 or ColdFire we generate one of two sequences:
+      /* We output a BSR instruction if we're building for a target that
+	 supports long branches.  Otherwise we generate one of two sequences:
 	 a shorter one that uses a GOT entry or a longer one that doesn't.
 	 We'll use the -Os command-line flag to decide which to generate.
 	 Both sequences take the same time to execute on the ColdFire.  */
   else if (TARGET_PCREL)
     out = "bsr.l %o0";
-  else if (flag_pic == 1 || TARGET_68020)
+  else if (TARGET_68020)
 #if defined(USE_GAS)
     out = "bsr.l %0@PLTPC";
 #else
diff --git a/gcc/config/m68k/t-m68kelf b/gcc/config/m68k/t-m68kelf
index 686e2d49054f2aee2349ae5dc7446fdfb9127ada..a1d57a04c2641d3de8a8060c9d022749a1ea23ea 100644
--- a/gcc/config/m68k/t-m68kelf
+++ b/gcc/config/m68k/t-m68kelf
@@ -24,6 +24,6 @@ LIBGCC = stmp-multilib
 INSTALL_LIBGCC = install-multilib
 
 # from ../t-svr4
-EXTRA_PARTS=crtbegin.o crtend.o
+EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o
 # no pic for now
 #CRTSTUFF_T_CFLAGS=-fpic
diff --git a/gcc/config/m68k/t-uclinux b/gcc/config/m68k/t-uclinux
index 8d864bfeb5811dcda291a90315c38cde7e2173d0..1fb7a42e59829dc11c403cdb5dffaefdab45289d 100644
--- a/gcc/config/m68k/t-uclinux
+++ b/gcc/config/m68k/t-uclinux
@@ -21,4 +21,4 @@ LIBGCC = stmp-multilib
 INSTALL_LIBGCC = install-multilib
 
 # We don't use crtbegin.o and crtend.o
-EXTRA_PARTS=
+EXTRA_MULTILIB_PARTS=
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c92d87878f7a39d4cf2e078eb4571b21366273d8..c95b8f80c377ba0a6509f6d732de6481fd4bded8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -130,6 +130,10 @@
 
 	* gcc.target/i386/sse-17.c:  New.
 
+2005-12-22  Paul Brook  <paul@codesourcery.com>
+
+	* gcc.dg/weak/typeof-2.c: Skip assembly test on m68k.
+
 2005-12-22  Paul Brook  <paul@codesourcery.com>
 
 	* gcc.dg/tree-ssa/loop-1.c: Look for jump/branch on m68k.
diff --git a/gcc/testsuite/gcc.dg/weak/typeof-2.c b/gcc/testsuite/gcc.dg/weak/typeof-2.c
index 53bb0ebfe54be07cbcf7fc7633308961132c597d..9fbfaf0f1408e768483ed5667099f200078ecd99 100644
--- a/gcc/testsuite/gcc.dg/weak/typeof-2.c
+++ b/gcc/testsuite/gcc.dg/weak/typeof-2.c
@@ -37,4 +37,6 @@ int bar3 (int x)
 // { dg-final { if [string match s390*-*-* $target_triplet ] {return} } }
 // Likewise for CRIS targets.
 // { dg-final { if [string match cris-*-* $target_triplet ] {return} } }
+// Likewise for m68k targets.
+// { dg-final { if [string match m68k-*-* $target_triplet ] {return} } }
 // { dg-final { scan-assembler "baz3.*baz3.*baz3.*baz3.*baz3.*baz3" } }