summaryrefslogtreecommitdiff
path: root/packages/binutils/binutils-2.18/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch
blob: 8df5b1fea072dfacf78d5c95398205c30185494a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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.
#
# modification by bero: Ported to 2.16.91.0.6
#
#Signed-off-by: John Bowler <jbowler@acm.org>
#Signed-off-by: Bernhard Rosenkraenzer <bero@arklinux.org>
---
# binutils/objcopy.c |    8 +++++---
# 1 file changed, 5 insertions(+), 3 deletions(-)
#
Index: src/binutils/objcopy.c
===================================================================
--- src.orig/binutils/objcopy.c	2007-08-09 13:26:03.000000000 +0100
+++ src/binutils/objcopy.c	2007-08-09 16:36:12.000000000 +0100
@@ -2787,8 +2787,9 @@ strip_main (int argc, char *argv[])
 	  if (preserve_dates)
 	    set_times (tmpname, &statbuf);
 	  if (output_file != tmpname)
-	    smart_rename (tmpname, output_file ? output_file : argv[i],
-			  preserve_dates);
+	    if (smart_rename (tmpname, output_file ? output_file : argv[i],
+			  preserve_dates))
+	      hold_status = 1;
 	  status = hold_status;
 	}
       else
@@ -3411,7 +3412,8 @@ copy_main (int argc, char *argv[])
       if (preserve_dates)
 	set_times (tmpname, &statbuf);
       if (tmpname != output_filename)
-	smart_rename (tmpname, input_filename, preserve_dates);
+	if (smart_rename (tmpname, input_filename, preserve_dates))
+	  status = 1;
     }
   else
     unlink_if_ordinary (tmpname);