summaryrefslogtreecommitdiffstats
path: root/meta/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch')
-rw-r--r--meta/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch b/meta/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
new file mode 100644
index 0000000000..e4372de88f
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
@@ -0,0 +1,29 @@
1# strip (and objcopy) fail to set the error code if there is no
2# output file name and the rename of the stripped (or copied) file
3# fails, yet the command fails to do anything. This fixes both
4# objcopy and strip.
5#
6#Signed-off-by: John Bowler <jbowler@acm.org>
7
8--- binutils-2.16/binutils/objcopy.c.orig 2006-01-31 11:15:38.797318519 -0800
9+++ binutils-2.16/binutils/objcopy.c 2006-01-31 11:15:40.463318516 -0800
10@@ -2434,7 +2434,8 @@ strip_main (int argc, char *argv[])
11 if (preserve_dates)
12 set_times (tmpname, &statbuf);
13 if (output_file == NULL)
14- smart_rename (tmpname, argv[i], preserve_dates);
15+ if (smart_rename (tmpname, argv[i], preserve_dates))
16+ hold_status = 1;
17 status = hold_status;
18 }
19 else
20@@ -3013,7 +3014,8 @@ copy_main (int argc, char *argv[])
21 {
22 if (preserve_dates)
23 set_times (tmpname, &statbuf);
24- smart_rename (tmpname, input_filename, preserve_dates);
25+ if (smart_rename (tmpname, input_filename, preserve_dates))
26+ status = 1;
27 }
28 else
29 unlink (tmpname);