OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [binutils/] [objcopy.c] - Diff between revs 15 and 163

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 15 Rev 163
Line 923... Line 923...
        return isympp[ghdr->sh_info - 1];
        return isympp[ghdr->sh_info - 1];
    }
    }
  return NULL;
  return NULL;
}
}
 
 
/* See if a section is being removed.  */
/* See if a non-group section is being removed.  */
 
 
static bfd_boolean
static bfd_boolean
is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
{
{
  if (sections_removed || sections_copied)
  if (sections_removed || sections_copied)
    {
    {
      struct section_list *p;
      struct section_list *p;
 
 
Line 953... Line 953...
 
 
      if (strip_symbols == STRIP_NONDEBUG)
      if (strip_symbols == STRIP_NONDEBUG)
        return FALSE;
        return FALSE;
    }
    }
 
 
 
  return FALSE;
 
}
 
 
 
/* See if a section is being removed.  */
 
 
 
static bfd_boolean
 
is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
 
{
 
  if (is_strip_section_1 (abfd, sec))
 
    return TRUE;
 
 
  if ((bfd_get_section_flags (abfd, sec) & SEC_GROUP) != 0)
  if ((bfd_get_section_flags (abfd, sec) & SEC_GROUP) != 0)
    {
    {
      asymbol *gsym;
      asymbol *gsym;
      const char *gname;
      const char *gname;
 
      asection *elt, *first;
 
 
      /* PR binutils/3181
      /* PR binutils/3181
         If we are going to strip the group signature symbol, then
         If we are going to strip the group signature symbol, then
         strip the group section too.  */
         strip the group section too.  */
      gsym = group_signature (sec);
      gsym = group_signature (sec);
Line 970... Line 982...
        gname = sec->name;
        gname = sec->name;
      if ((strip_symbols == STRIP_ALL
      if ((strip_symbols == STRIP_ALL
           && !is_specified_symbol (gname, keep_specific_htab))
           && !is_specified_symbol (gname, keep_specific_htab))
          || is_specified_symbol (gname, strip_specific_htab))
          || is_specified_symbol (gname, strip_specific_htab))
        return TRUE;
        return TRUE;
 
 
 
      /* Remove the group section if all members are removed.  */
 
      first = elt = elf_next_in_group (sec);
 
      while (elt != NULL)
 
        {
 
          if (!is_strip_section_1 (abfd, elt))
 
            return FALSE;
 
          elt = elf_next_in_group (elt);
 
          if (elt == first)
 
            break;
 
        }
 
 
 
      return TRUE;
    }
    }
 
 
  return FALSE;
  return FALSE;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.