diff options
author | Nick Clifton <nickc@redhat.com> | 2025-09-09 08:57:38 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2025-09-09 08:57:38 +0100 |
commit | 3ac272c1f115da7bfbb872bf7ad9aa72f42e0c01 (patch) | |
tree | f77936064651a78d5946901c43fa20ba84956f5e | |
parent | 7ab2cbe8d0f857d2b5462f4748127a7a7ccfed04 (diff) | |
download | binutils-3ac272c1f115da7bfbb872bf7ad9aa72f42e0c01.zip binutils-3ac272c1f115da7bfbb872bf7ad9aa72f42e0c01.tar.gz binutils-3ac272c1f115da7bfbb872bf7ad9aa72f42e0c01.tar.bz2 |
objcopy: when an invalid bfd target string is used as a target option, print an error message that references the target string, not the file being copied
-rw-r--r-- | binutils/objcopy.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/binutils/objcopy.c b/binutils/objcopy.c index a3259f9..3c1bcf6 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -3876,7 +3876,10 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, ibfd = bfd_openr (input_filename, target); if (ibfd == NULL || bfd_stat (ibfd, in_stat) != 0) { - bfd_nonfatal_message (input_filename, NULL, NULL, NULL); + if (bfd_get_error () == bfd_error_invalid_target && target != NULL) + bfd_nonfatal_message (target, NULL, NULL, NULL); + else + bfd_nonfatal_message (input_filename, NULL, NULL, NULL); if (ibfd != NULL) bfd_close (ibfd); status = 1; @@ -3951,7 +3954,10 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, { if (ofd >= 0) close (ofd); - bfd_nonfatal_message (output_filename, NULL, NULL, NULL); + if (force_output_target && bfd_get_error () == bfd_error_invalid_target) + bfd_nonfatal_message (output_target, NULL, NULL, NULL); + else + bfd_nonfatal_message (output_filename, NULL, NULL, NULL); bfd_close (ibfd); status = 1; return; @@ -4036,7 +4042,10 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, { if (ofd >= 0) close (ofd); - bfd_nonfatal_message (output_filename, NULL, NULL, NULL); + if (bfd_get_error () == bfd_error_invalid_target) + bfd_nonfatal_message (output_target, NULL, NULL, NULL); + else + bfd_nonfatal_message (output_filename, NULL, NULL, NULL); bfd_close (ibfd); status = 1; return; |