Home | History | Annotate | Download | only in bfd

Lines Matching defs:isec

11187 ppc64_elf_next_toc_section (struct bfd_link_info *info, asection *isec)
11198 bfd_boolean new_bfd = htab->toc_bfd != isec->owner;
11202 htab->toc_bfd = isec->owner;
11203 htab->toc_first_sec = isec;
11206 addr = isec->output_offset + isec->output_section->vma;
11209 if (ppc64_elf_tdata (isec->owner)->has_small_toc_reloc)
11211 if (off + isec->size > limit)
11223 off = htab->toc_curr - elf_gp (isec->output_section->owner);
11229 && elf_gp (isec->owner) != 0
11230 && elf_gp (isec->owner) != off)
11233 elf_gp (isec->owner) = off;
11240 if (htab->toc_bfd == isec->owner)
11242 htab->toc_bfd = isec->owner;
11245 || htab->toc_curr != elf_gp (isec->owner))
11247 htab->toc_curr = elf_gp (isec->owner);
11248 htab->toc_first_sec = isec;
11252 off = addr - elf_gp (isec->output_section->owner) + TOC_BASE_OFF;
11253 elf_gp (isec->owner) = off;
11482 /* No toc references were found in ISEC. If the code in ISEC makes no
11484 into ISEC. Actually, indirect calls from ISEC are OK as they will
11491 toc_adjusting_stub_needed (struct bfd_link_info *info, asection *isec)
11496 isec->call_check_done = 1;
11499 if ((isec->flags & SEC_LINKER_CREATED) != 0)
11502 if (isec->size == 0)
11505 if (isec->output_section == NULL)
11509 if (isec->reloc_count != 0)
11515 relstart = _bfd_elf_link_read_relocs (isec->owner, isec, NULL, NULL,
11526 for (rel = relstart; rel < relstart + isec->reloc_count; ++rel)
11547 isec->owner))
11614 if (sym_sec == isec)
11627 else if (dest - (isec->output_offset
11628 + isec->output_section->vma
11653 isec->call_check_in_progress = 1;
11655 isec->call_check_in_progress = 0;
11667 && (elf_symtab_hdr (isec->owner).contents
11670 if (elf_section_data (isec)->relocs != relstart)
11675 && isec->map_head.s != NULL
11676 && (strcmp (isec->output_section->name, ".init") == 0
11677 || strcmp (isec->output_section->name, ".fini") == 0))
11679 if (isec->map_head.s->has_toc_reloc
11680 || isec->map_head.s->makes_toc_func_call)
11682 else if (!isec->map_head.s->call_check_done)
11685 isec->call_check_in_progress = 1;
11686 recur = toc_adjusting_stub_needed (info, isec->map_head.s);
11687 isec->call_check_in_progress = 0;
11694 isec->makes_toc_func_call = 1;
11705 ppc64_elf_next_input_section (struct bfd_link_info *info, asection *isec)
11712 if ((isec->output_section->flags & SEC_CODE) != 0
11713 && isec->output_section->index <= htab->top_index)
11715 asection **list = htab->input_list + isec->output_section->index;
11720 PREV_SEC (isec) = *list;
11721 *list = isec;
11730 if (!(isec->has_toc_reloc
11731 || (isec->flags & SEC_CODE) == 0
11732 || strcmp (isec->name, ".fixup") == 0
11733 || isec->call_check_done))
11735 if (toc_adjusting_stub_needed (info, isec) < 0)
11741 if (elf_gp (isec->owner) != 0)
11742 htab->toc_curr = elf_gp (isec->owner);
11745 htab->stub_group[isec->id].toc_off = htab->toc_curr;
11926 maybe_strip_output (struct bfd_link_info *info, asection *isec)
11928 if (isec->size == 0
11929 && isec->output_section->size == 0
11930 && !(isec->output_section->flags & SEC_KEEP)
11932 isec->output_section)
11933 && elf_section_data (isec->output_section)->dynindx == 0)
11935 isec->output_section->flags |= SEC_EXCLUDE;
11936 bfd_section_list_remove (info->output_bfd, isec->output_section);
13126 asection *isec = lo->u.indirect.section;
13127 if (h_elf->root.u.def.value >= isec->output_offset
13128 && h_elf->root.u.def.value < (isec->output_offset
13129 + isec->size))
13131 h_elf->root.u.def.value -= isec->output_offset;
13132 h_elf->root.u.def.section = isec;
13133 sec = isec;