FreeBSD/contrib/binutils/bfd/elflink.c
/* Adjust all external symbols pointing into SEC_MERGE sections
   to reflect the object merging within the sections.  */
Adjust all external symbols pointing into SEC_MERGE sections
to reflect the object merging within the sections.
Adjust all external symbols pointing into SEC_MERGE sections to reflect the object merging within the sections .
bfd_boolean
_bfd_elf_link_sec_merge_syms (struct elf_link_hash_entry *h, void *data)
{
  asection *sec;
  if (h->root.type == bfd_link_hash_warning)
    h = (struct elf_link_hash_entry *) h->root.u.i.link;
  if ((h->root.type == bfd_link_hash_defined
       || h->root.type == bfd_link_hash_defweak)
      && ((sec = h->root.u.def.section)->flags & SEC_MERGE)
      && sec->sec_info_type == ELF_INFO_TYPE_MERGE)
    {
      bfd *output_bfd = data;
      h->root.u.def.value =
	_bfd_merged_section_offset (output_bfd,
				    &h->root.u.def.section,
				    elf_section_data (sec)->sec_info,
				    h->root.u.def.value);
    }
  return TRUE;
}
bfd_boolean _bfd_elf_link_sec_merge_syms ( struct elf_link_hash_entry * h , void * data ) { asection * sec ; if ( h -> root . type == bfd_link_hash_warning ) h = ( struct elf_link_hash_entry * ) h -> root . u . i . link ; if ( ( h -> root . type == bfd_link_hash_defined || h -> root . type == bfd_link_hash_defweak ) && ( ( sec = h -> root . u . def . section ) -> flags & SEC_MERGE ) && sec -> sec_info_type == ELF_INFO_TYPE_MERGE ) { bfd * output_bfd = data ; h -> root . u . def . value = _bfd_merged_section_offset ( output_bfd , & h -> root . u . def . section , elf_section_data ( sec ) -> sec_info , h -> root . u . def . value ) ; } return TRUE ; }
Adjust all external symbols pointing into SEC_MERGE sections
to reflect the object merging within the sections.
Adjust all external symbols pointing into SEC_MERGE sections to reflect the object merging within the sections .