# 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);