Lines Matching defs:opd

191 /* Since .opd is an array of descriptors and each entry will end up
193 propagate .opd relocs; The dynamic linker should be taught to
194 relocate .opd without reloc entries. */
2224 if (strcmp (symbol->section->name, ".opd") == 0
2443 on removed .opd entries to this section so that the sym is removed. */
2595 /* An array with one entry for each opd function descriptor. */
2598 /* Points to the function code section for local opd entries. */
2600 /* After editing .opd, adjust references to opd local syms. */
2602 } opd;
2631 && ppc64_elf_section_data (sec)->opd.adjust != NULL)
2632 return ppc64_elf_section_data (sec)->opd.adjust;
2655 /* then .opd symbols. */
2772 asection *opd;
2778 opd = bfd_get_section_by_name (abfd, ".opd");
2779 if (opd == NULL)
2803 synthetic_opd = opd;
2821 if (syms[i]->section == opd)
2838 if (syms[i]->section != opd)
2860 relcount = (opd->flags & SEC_RELOC) ? opd->reloc_count : 0;
2864 if (!(*slurp_relocs) (abfd, opd, static_syms, FALSE))
2871 for (i = secsymend, r = opd->relocation; i < opdsymend; ++i)
2875 while (r < opd->relocation + relcount
2876 && r->address < syms[i]->value + opd->vma)
2879 if (r == opd->relocation + relcount)
2882 if (r->address != syms[i]->value + opd->vma)
2907 for (i = secsymend, r = opd->relocation; i < opdsymend; ++i)
2911 while (r < opd->relocation + relcount
2912 && r->address < syms[i]->value + opd->vma)
2915 if (r == opd->relocation + relcount)
2918 if (r->address != syms[i]->value + opd->vma)
2947 if (!bfd_malloc_and_get_section (abfd, opd, &contents))
3056 . .section .opd
3065 unsurprisingly just goes to .foo and the .opd information is unused.
3067 different: The call goes via a plt call stub, the opd information gets
3089 an R_PPC64_JMP_SLOT reloc against foo. The dynamic linker does the opd
3186 the address of a function descriptor, which resides in the .opd
3316 /* Whether global opd/toc sym has been adjusted or not.
3318 should be set for all globals defined in any opd/toc section. */
4126 /* Fix function descriptor symbols defined in .opd sections to be
4139 && strcmp (bfd_get_section_name (ibfd, *sec), ".opd") == 0)
4404 if (strcmp (bfd_get_section_name (abfd, sec), ".opd") == 0)
4406 /* Garbage collection needs some extra help with .opd sections.
4408 relocs in .opd, as that would keep all functions. Instead,
4409 if we reference an .opd symbol (a function descriptor), we
4414 local syms in .opd. */
4425 ppc64_elf_section_data (sec)->opd.func_sec = opd_sym_map;
4781 /* Don't propagate .opd relocs. */
4961 /* Go find the opd reloc at the sym address. */
5136 /* Syms return NULL if we're marking .opd, so we avoid marking all
5137 function sections, as all functions are referenced in .opd. */
5172 /* They also mark their opd section. */
6131 /* Adjust all global syms defined in opd sections. In gcc generated
6345 sec = bfd_get_section_by_name (ibfd, ".opd");
6358 ppc64_elf_section_data (sec)->opd.adjust = opd_adjust;
6386 determine whether we need to edit this opd section. */
6399 /* .opd contains a regular array of 16 or 24 byte entries. We're
6406 /* If someone messes with .opd alignment then after a
6407 "ld -r" we might have padding in the middle of .opd.
6409 something silly in .opd with the assembler. No .opd
6413 (_("%B: .opd is not a regular array of opd entries"), ibfd);
6422 (_("%B: unexpected reloc type %u in .opd section"),
6443 (_("%B: undefined sym `%s' in .opd section"),
6449 /* opd entries are always for functions defined in the
6509 /* This seems a waste of time as input .opd sections are all
6512 the third word of .opd entries. */
6565 /* See if the .opd entry is full 24 byte or
6603 /* We'll be keeping this opd entry. */
6608 this location in the opd section. It is
6651 new opd entries. While we're at it, we may as well
6691 /* If we are doing a final link and the last .opd entry is just 16 byte
6851 STT_TLS. So no need for .opd local sym adjust. */
8320 /* H is an opd symbol. The addend must be zero. */
8829 /* If this branch reloc uses an opd sym, find the code section. */
8955 to use the right TOC (obviously). Also, make sure that .opd gets
9698 if (strcmp (".opd", sec->name) == 0)
9777 is_opd = ppc64_elf_section_data (input_section)->opd.adjust != NULL;
9841 /* If this is a relocation against the opd section sym
9842 and we have edited .opd, adjust the reloc addend so
9844 If it is a reloc against some other .opd symbol,
10350 /* The branch destination is the value of the opd entry. */
10860 or this is an opd section reloc which must point
10867 /* Lie about opd entries. This case occurs
10875 In these cases we won't use the opd
10881 /* We need to relocate .opd contents for ld.so.
10937 case of .opd where the contents might be accessed
11151 /* Adjust the value of any local symbols in opd sections. */
11323 s = bfd_get_section_by_name (output_bfd, ".opd");
11330 s = bfd_get_section_by_name (output_bfd, ".opd");