aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2025-09-09 08:57:38 +0100
committerNick Clifton <nickc@redhat.com>2025-09-09 08:57:38 +0100
commit3ac272c1f115da7bfbb872bf7ad9aa72f42e0c01 (patch)
treef77936064651a78d5946901c43fa20ba84956f5e
parent7ab2cbe8d0f857d2b5462f4748127a7a7ccfed04 (diff)
downloadbinutils-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.c15
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;