diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a41fa48cf841d6ea0a75a296442b131471a80a85..ae5a21ef1947758f9d5e918871944bb9efe12970 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
+
+	* config/cris/arit.c: Use __builtin_labs, not abs.
+
+	* config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
+
+	* config/cris/cris.c (cris_target_asm_function_epilogue): Move
+	misplaced sprintf and fprintf argument.
+
 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
 
 	* ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
diff --git a/gcc/config/cris/arit.c b/gcc/config/cris/arit.c
index 91f4e0560e92ca219dfcbdc3e61a74cb0109cd47..057ce81d0ad8da3bb8d68b1c243e0e7e308a78fe 100644
--- a/gcc/config/cris/arit.c
+++ b/gcc/config/cris/arit.c
@@ -223,7 +223,7 @@ __Div (long a, long b)
      which is still 32 bits.  */
 
   sign = a ^ b;
-  result = __Udiv (abs (a), abs (b));
+  result = __Udiv (__builtin_labs (a), __builtin_labs (b));
 
   return  (sign < 0) ? -result : result;
 }
@@ -286,7 +286,7 @@ __Mod (long a, long b)
 {
   long	result;
 
-  result = __Umod (abs (a), abs (b));
+  result = __Umod (__builtin_labs (a), __builtin_labs (b));
 
   return (a < 0) ? -result : result;
 }
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index b87a2ac4e834b0cacb924a5c6aca84df21eb45b6..668811ee010d01dcc44c0e6b3418955cd2db2391 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -1058,7 +1058,7 @@ cris_target_asm_function_epilogue (file, size)
 	/* Flush previous non-movem:ed registers.  */
 	if (*save_last && file)
 	  fprintf (file, save_last);
-	sprintf (save_last, "\tPop $%s\n");
+	sprintf (save_last, "\tPop $%s\n", reg_names[regno]);
       }
 
   if (last_movem_reg != -1)
@@ -1140,7 +1140,7 @@ cris_target_asm_function_epilogue (file, size)
 	    {
 	      /* The installed EH-return address is in *this* frame, so we
 		 need to pop it before we return.  */
-	      fprintf (file, "\tpop $srp\n", reg_names[CRIS_STACKADJ_REG]);
+	      fprintf (file, "\tpop $srp\n");
 	      fprintf (file, "\tret\n");
 	      fprintf (file, "\tadd.d $%s,$sp\n", reg_names[CRIS_STACKADJ_REG]);
 	    }
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index ccba9ae9427e5cf358c71a5aa55cddf1dd977ad7..8e62c4119fec2143f575ed6e06362a43aaa7199c 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -1714,31 +1714,7 @@ struct cum_args {int regs;};
 /* (no definitions) */
 
 /* Node: Macros for Initialization */
-
-/* We don't want to use "strip" for anything linked with "-melinux"
-   "-shlib", seen by the linker as "-Ur -d -Bdynamic" in combination.  */
-#define SET_STRIPPABLE_EXECUTABLE(DS, ARGC, ARGV)		\
-  do 								\
-    {								\
-      int i;							\
-      int flags = 0;						\
-      for (i = (ARGC) - 1; i > 0; i--)				\
-	{							\
-	  if (strcmp ((ARGV)[i], "-Ur") == 0)			\
-	    flags |= 1;						\
-	  else if (strcmp ((ARGV)[i], "-d") == 0)		\
-	    flags |= 2;						\
-	  else if (strcmp ((ARGV)[i], "-Bdynamic") == 0)	\
-	    flags |= 4;						\
-								\
-	  if (flags == 7)					\
-	    break;						\
-	}							\
-								\
-      (DS) = (flags != 7);					\
-    }								\
-  while (0)
-
+/* (no definitions) */
 
 /* Node: Instruction Output */