# strip (and objcopy) fail to set the error code if there is no
# output file name and the rename of the stripped (or copied) file
# fails, yet the command fails to do anything.  This fixes both
# objcopy and strip.
#
#Signed-off-by: John Bowler <jbowler@acm.org>

--- binutils-2.16/binutils/objcopy.c.orig	2006-01-31 11:15:38.797318519 -0800
+++ binutils-2.16/binutils/objcopy.c	2006-01-31 11:15:40.463318516 -0800
@@ -2434,7 +2434,8 @@ strip_main (int argc, char *argv[])
 	  if (preserve_dates)
 	    set_times (tmpname, &statbuf);
 	  if (output_file == NULL)
-	    smart_rename (tmpname, argv[i], preserve_dates);
+	    if (smart_rename (tmpname, argv[i], preserve_dates))
+	      hold_status = 1;
 	  status = hold_status;
 	}
       else
@@ -3013,7 +3014,8 @@ copy_main (int argc, char *argv[])
 	{
 	  if (preserve_dates)
 	    set_times (tmpname, &statbuf);
-	  smart_rename (tmpname, input_filename, preserve_dates);
+	  if (smart_rename (tmpname, input_filename, preserve_dates))
+	    status = 1;
 	}
       else
 	unlink (tmpname);
