FreeBSD/contrib/binutils/bfd/elflink.c
/* Get the output vma of the section pointed to by the sh_link field.  */
Get the output vma of the section pointed to by the sh_link field.
Get the output vma of the section pointed to by the sh_link field .
static bfd_vma
elf_get_linked_section_vma (struct bfd_link_order *p)
{
  Elf_Internal_Shdr **elf_shdrp;
  asection *s;
  int elfsec;
  s = p->u.indirect.section;
  elf_shdrp = elf_elfsections (s->owner);
  elfsec = _bfd_elf_section_from_bfd_section (s->owner, s);
  elfsec = elf_shdrp[elfsec]->sh_link;
  if (elfsec == 0)
    {
      const struct elf_backend_data *bed
	= get_elf_backend_data (s->owner);
      if (bed->link_order_error_handler)
	bed->link_order_error_handler
	  (_("%B: warning: sh_link not set for section `%A'"), s->owner, s);
      return 0;
    }
  else
    {
      s = elf_shdrp[elfsec]->bfd_section;
      return s->output_section->vma + s->output_offset;
    }
}
static bfd_vma elf_get_linked_section_vma ( struct bfd_link_order * p ) { Elf_Internal_Shdr * * elf_shdrp ; asection * s ; int elfsec ; s = p -> u . indirect . section ; elf_shdrp = elf_elfsections ( s -> owner ) ; elfsec = _bfd_elf_section_from_bfd_section ( s -> owner , s ) ; elfsec = elf_shdrp [ elfsec ] -> sh_link ; if ( elfsec == 0 ) { const struct elf_backend_data * bed = get_elf_backend_data ( s -> owner ) ; if ( bed -> link_order_error_handler ) bed -> link_order_error_handler ( _ ( " " ) , s -> owner , s ) ; return 0 ; } else { s = elf_shdrp [ elfsec ] -> bfd_section ; return s -> output_section -> vma + s -> output_offset ; } }
Get the output vma of the section pointed to by the sh_link field.
Get the output vma of the section pointed to by the sh_link field .
/* PR 290:
     The Intel C compiler generates SHT_IA_64_UNWIND with
     SHF_LINK_ORDER.  But it doesn't set the sh_link or
     sh_info fields.  Hence we could get the situation
     where elfsec is 0.  */