From ed570f48a0c7fa84eb8c8fb0a0861074ccd4f55f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 27 Oct 2003 12:45:38 +0000 Subject: [PATCH] Do not complain when copying a file format that does not support relocations. --- binutils/ChangeLog | 6 ++++++ binutils/objcopy.c | 21 +++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 02d6944b0b6..6c2db14ec2b 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2003-10-27 Nick Clifton + + * objcopy.c (copy_section): Do not complain when a target does not + support relocations. + (mark_symbols_used_in_relocations): Likewise. + 2003-10-14 Anil Paranjpe * objcopy.c (copy_main): Reads machine flags from arch_info diff --git a/binutils/objcopy.c b/binutils/objcopy.c index b48b84ff02d..8a1a67a74ef 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1885,10 +1885,18 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg) if (bfd_get_format (obfd) == bfd_core) relsize = 0; else - relsize = bfd_get_reloc_upper_bound (ibfd, isection); + { + relsize = bfd_get_reloc_upper_bound (ibfd, isection); - if (relsize < 0) - RETURN_NONFATAL (bfd_get_filename (ibfd)); + if (relsize < 0) + { + /* Do not complain if the target does not support relocations. */ + if (relsize == -1 && bfd_get_error () == bfd_error_invalid_operation) + relsize = 0; + else + RETURN_NONFATAL (bfd_get_filename (ibfd)); + } + } if (relsize == 0) bfd_set_reloc (obfd, osection, NULL, 0); @@ -2030,7 +2038,12 @@ mark_symbols_used_in_relocations (bfd *ibfd, sec_ptr isection, void *symbolsarg) relsize = bfd_get_reloc_upper_bound (ibfd, isection); if (relsize < 0) - bfd_fatal (bfd_get_filename (ibfd)); + { + /* Do not complain if the target does not support relocations. */ + if (relsize == -1 && bfd_get_error () == bfd_error_invalid_operation) + return; + bfd_fatal (bfd_get_filename (ibfd)); + } if (relsize == 0) return; -- 2.30.2