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

Subversion Repositories open8_urisc

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

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

Rev 14 Rev 148
Line 1717... Line 1717...
mips_elf_check_symbols (struct mips_elf_link_hash_entry *h, void *data)
mips_elf_check_symbols (struct mips_elf_link_hash_entry *h, void *data)
{
{
  struct mips_htab_traverse_info *hti;
  struct mips_htab_traverse_info *hti;
 
 
  hti = (struct mips_htab_traverse_info *) data;
  hti = (struct mips_htab_traverse_info *) data;
  if (h->root.root.type == bfd_link_hash_warning)
 
    h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
 
 
 
  if (!hti->info->relocatable)
  if (!hti->info->relocatable)
    mips_elf_check_mips16_stubs (hti->info, h);
    mips_elf_check_mips16_stubs (hti->info, h);
 
 
  if (mips_elf_local_pic_function_p (h))
  if (mips_elf_local_pic_function_p (h))
    {
    {
 
      /* PR 12845: If H is in a section that has been garbage
 
         collected it will have its output section set to *ABS*.  */
 
      if (bfd_is_abs_section (h->root.root.u.def.section->output_section))
 
        return TRUE;
 
 
      /* H is a function that might need $25 to be valid on entry.
      /* H is a function that might need $25 to be valid on entry.
         If we're creating a non-PIC relocatable object, mark H as
         If we're creating a non-PIC relocatable object, mark H as
         being PIC.  If we're creating a non-relocatable object with
         being PIC.  If we're creating a non-relocatable object with
         non-PIC branches and jumps to H, make sure that H has an la25
         non-PIC branches and jumps to H, make sure that H has an la25
         stub.  */
         stub.  */
Line 2402... Line 2404...
{
{
  struct extsym_info *einfo = data;
  struct extsym_info *einfo = data;
  bfd_boolean strip;
  bfd_boolean strip;
  asection *sec, *output_section;
  asection *sec, *output_section;
 
 
  if (h->root.root.type == bfd_link_hash_warning)
 
    h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
 
 
 
  if (h->root.indx == -2)
  if (h->root.indx == -2)
    strip = FALSE;
    strip = FALSE;
  else if ((h->root.def_dynamic
  else if ((h->root.def_dynamic
            || h->root.ref_dynamic
            || h->root.ref_dynamic
            || h->root.type == bfd_link_hash_new)
            || h->root.type == bfd_link_hash_new)
Line 3430... Line 3429...
static bfd_boolean
static bfd_boolean
mips_elf_sort_hash_table_f (struct mips_elf_link_hash_entry *h, void *data)
mips_elf_sort_hash_table_f (struct mips_elf_link_hash_entry *h, void *data)
{
{
  struct mips_elf_hash_sort_data *hsd = data;
  struct mips_elf_hash_sort_data *hsd = data;
 
 
  if (h->root.root.type == bfd_link_hash_warning)
 
    h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
 
 
 
  /* Symbols without dynamic symbol table entries aren't interesting
  /* Symbols without dynamic symbol table entries aren't interesting
     at all.  */
     at all.  */
  if (h->root.dynindx == -1)
  if (h->root.dynindx == -1)
    return TRUE;
    return TRUE;
 
 
Line 8140... Line 8136...
  /* VxWorks executables are handled elsewhere; we only need to
  /* VxWorks executables are handled elsewhere; we only need to
     allocate relocations in shared objects.  */
     allocate relocations in shared objects.  */
  if (htab->is_vxworks && !info->shared)
  if (htab->is_vxworks && !info->shared)
    return TRUE;
    return TRUE;
 
 
  /* Ignore indirect and warning symbols.  All relocations against
  /* Ignore indirect symbols.  All relocations against such symbols
     such symbols will be redirected to the target symbol.  */
     will be redirected to the target symbol.  */
  if (h->root.type == bfd_link_hash_indirect
  if (h->root.type == bfd_link_hash_indirect)
      || h->root.type == bfd_link_hash_warning)
 
    return TRUE;
    return TRUE;
 
 
  /* If this symbol is defined in a dynamic object, or we are creating
  /* If this symbol is defined in a dynamic object, or we are creating
     a shared library, we will need to copy any R_MIPS_32 or
     a shared library, we will need to copy any R_MIPS_32 or
     R_MIPS_REL32 relocs against it into the output file.  */
     R_MIPS_REL32 relocs against it into the output file.  */

powered by: WebSVN 2.1.0

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