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.
This commit is contained in:
Nick Clifton 2003-12-04 18:24:07 +00:00
parent 2051433802
commit f57a841aea
2 changed files with 19 additions and 3 deletions

View File

@ -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.

View File

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