aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-12-04 18:24:07 +0000
committerNick Clifton <nickc@redhat.com>2003-12-04 18:24:07 +0000
commitf57a841aea536a33e06a67c13bb15245742ba330 (patch)
tree420b90c76d4d46bd6b0cfba0124eaee82e9686e5
parent2051433802d3710a2c35c6eed4f9990ea30e812f (diff)
downloadgdb-f57a841aea536a33e06a67c13bb15245742ba330.zip
gdb-f57a841aea536a33e06a67c13bb15245742ba330.tar.gz
gdb-f57a841aea536a33e06a67c13bb15245742ba330.tar.bz2
Do not copy the object if the output file's format cannot be set to that of
the input file. If the input file's format is unknown, fail.
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/objcopy.c16
2 files changed, 19 insertions, 3 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 526fb12..77f21b0 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2003-12-04 Nick Clifton <nickc@redhat.com>
+
+ * objcopy.c (copy_object): Do not copy the object if the
+ output file's format cannot be set to that of the input file.
+ If the input file's format is unknown, fail.
+
2003-11-28 Ian Lance Taylor <ian@wasabisystems.com>
* cxxfilt.c (usage): Mention new -p/--no-params options.
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 6807aac..2589017 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1138,9 +1138,19 @@ copy_object (bfd *ibfd, bfd *obfd)
if (!bfd_set_arch_mach (obfd, iarch, imach)
&& (ibfd->target_defaulted
|| bfd_get_arch (ibfd) != bfd_get_arch (obfd)))
- non_fatal (_("Warning: Output file cannot represent architecture %s"),
- bfd_printable_arch_mach (bfd_get_arch (ibfd),
- bfd_get_mach (ibfd)));
+ {
+ if (bfd_get_arch (ibfd) == bfd_arch_unknown)
+ fatal (_("Unable to recognise the format of the input file %s"),
+ bfd_get_filename (ibfd));
+ else
+ {
+ non_fatal (_("Warning: Output file cannot represent architecture %s"),
+ bfd_printable_arch_mach (bfd_get_arch (ibfd),
+ bfd_get_mach (ibfd)));
+ status = 1;
+ return;
+ }
+ }
if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
RETURN_NONFATAL (bfd_get_filename (ibfd));