summaryrefslogtreecommitdiff
path: root/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
diff options
context:
space:
mode:
authorFlorian Boor <florian.boor@kernelconcepts.de>2006-02-01 13:09:32 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-02-01 13:09:32 +0000
commit57a0ea251c99054f1da88f4ae0233010a7a062e1 (patch)
tree2782d6222bcd0e7ca92724de4d5691dcc6ca791f /packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
parent1301f1dfdeeee12f1638386f161b0bac630f8e1c (diff)
parent4f53bb2d58aba4a382057369405e00b165b95f42 (diff)
merge of 6287535c46a3cdb7bc8a84eaeead326756fd3f98
and 99edbe0f3af53904ca2cb45c0849c1580b274a1d
Diffstat (limited to 'packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch')
-rw-r--r--packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch b/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
new file mode 100644
index 0000000000..e4372de88f
--- /dev/null
+++ b/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
@@ -0,0 +1,29 @@
+# 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);