* objcopy.c (copy_object): Catch the case where an attempt is made to add a

section that already exists and produce a more helpful warning message.
This commit is contained in:
Nick Clifton
2006-01-30 13:06:53 +00:00
parent 790433a9e1
commit c8782eeec3
2 changed files with 20 additions and 4 deletions

View File

@ -1313,13 +1313,23 @@ copy_object (bfd *ibfd, bfd *obfd)
if (pset != NULL && pset->set_flags)
flags = pset->flags | SEC_HAS_CONTENTS;
padd->section = bfd_make_section_with_flags (obfd, padd->name, flags);
if (padd->section == NULL)
/* bfd_make_section_with_flags() does not return very helpful
error codes, so check for the most likely user error first. */
if (bfd_get_section_by_name (obfd, padd->name))
{
non_fatal (_("can't create section `%s': %s"),
padd->name, bfd_errmsg (bfd_get_error ()));
non_fatal (_("can't add section '%s' - it already exists!"), padd->name);
return FALSE;
}
else
{
padd->section = bfd_make_section_with_flags (obfd, padd->name, flags);
if (padd->section == NULL)
{
non_fatal (_("can't create section `%s': %s"),
padd->name, bfd_errmsg (bfd_get_error ()));
return FALSE;
}
}
if (! bfd_set_section_size (obfd, padd->section, padd->size))
{