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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [bfd/] [linker.c] - Diff between revs 14 and 148

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

Rev 14 Rev 148
Line 602... Line 602...
    }
    }
 
 
  return bfd_link_hash_lookup (info->hash, string, create, copy, follow);
  return bfd_link_hash_lookup (info->hash, string, create, copy, follow);
}
}
 
 
/* Traverse a generic link hash table.  The only reason this is not a
/* Traverse a generic link hash table.  Differs from bfd_hash_traverse
   macro is to do better type checking.  This code presumes that an
   in the treatment of warning symbols.  When warning symbols are
   argument passed as a struct bfd_hash_entry * may be caught as a
   created they replace the real symbol, so you don't get to see the
   struct bfd_link_hash_entry * with no explicit cast required on the
   real symbol in a bfd_hash_travere.  This traversal calls func with
   call.  */
   the real symbol.  */
 
 
void
void
bfd_link_hash_traverse
bfd_link_hash_traverse
  (struct bfd_link_hash_table *table,
  (struct bfd_link_hash_table *htab,
   bfd_boolean (*func) (struct bfd_link_hash_entry *, void *),
   bfd_boolean (*func) (struct bfd_link_hash_entry *, void *),
   void *info)
   void *info)
{
{
  bfd_hash_traverse (&table->table,
  unsigned int i;
                     (bfd_boolean (*) (struct bfd_hash_entry *, void *)) func,
 
                     info);
  htab->table.frozen = 1;
 
  for (i = 0; i < htab->table.size; i++)
 
    {
 
      struct bfd_link_hash_entry *p;
 
 
 
      p = (struct bfd_link_hash_entry *) htab->table.table[i];
 
      for (; p != NULL; p = (struct bfd_link_hash_entry *) p->root.next)
 
        if (!(*func) (p->type == bfd_link_hash_warning ? p->u.i.link : p, info))
 
          goto out;
 
    }
 
 out:
 
  htab->table.frozen = 0;
}
}
 
 
/* Add a symbol to the linker hash table undefs list.  */
/* Add a symbol to the linker hash table undefs list.  */
 
 
void
void
Line 1564... Line 1575...
{
{
  enum link_row row;
  enum link_row row;
  struct bfd_link_hash_entry *h;
  struct bfd_link_hash_entry *h;
  bfd_boolean cycle;
  bfd_boolean cycle;
 
 
 
  BFD_ASSERT (section != NULL);
 
 
  if (bfd_is_ind_section (section)
  if (bfd_is_ind_section (section)
      || (flags & BSF_INDIRECT) != 0)
      || (flags & BSF_INDIRECT) != 0)
    row = INDR_ROW;
    row = INDR_ROW;
  else if ((flags & BSF_WARNING) != 0)
  else if ((flags & BSF_WARNING) != 0)
    row = WARN_ROW;
    row = WARN_ROW;
Line 2438... Line 2451...
{
{
  struct generic_write_global_symbol_info *wginfo =
  struct generic_write_global_symbol_info *wginfo =
      (struct generic_write_global_symbol_info *) data;
      (struct generic_write_global_symbol_info *) data;
  asymbol *sym;
  asymbol *sym;
 
 
  if (h->root.type == bfd_link_hash_warning)
 
    h = (struct generic_link_hash_entry *) h->root.u.i.link;
 
 
 
  if (h->written)
  if (h->written)
    return TRUE;
    return TRUE;
 
 
  h->written = TRUE;
  h->written = TRUE;
 
 
Line 3091... Line 3101...
static bfd_boolean
static bfd_boolean
fix_syms (struct bfd_link_hash_entry *h, void *data)
fix_syms (struct bfd_link_hash_entry *h, void *data)
{
{
  bfd *obfd = (bfd *) data;
  bfd *obfd = (bfd *) data;
 
 
  if (h->type == bfd_link_hash_warning)
 
    h = h->u.i.link;
 
 
 
  if (h->type == bfd_link_hash_defined
  if (h->type == bfd_link_hash_defined
      || h->type == bfd_link_hash_defweak)
      || h->type == bfd_link_hash_defweak)
    {
    {
      asection *s = h->u.def.section;
      asection *s = h->u.def.section;
      if (s != NULL
      if (s != NULL

powered by: WebSVN 2.1.0

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