Lines Matching defs:plt

60 /* For new-style .glink and .plt.  */
64 /* VxWorks uses its own plt layout, filled in by the static linker. */
121 .rela.plt.unloaded, for the kernel loader. */
1760 /* Flags used to auto-detect plt type. */
1932 const asection *plt ATTRIBUTE_UNUSED,
2010 { STRING_COMMA_LEN (".plt"), 0, SHT_NOBITS, SHF_ALLOC + SHF_EXECINSTR },
2022 /* This is what we want for new plt/got. */
2024 { STRING_COMMA_LEN (".plt"), 0, SHT_PROGBITS, SHF_ALLOC };
2377 } plt;
2462 asection *plt;
2471 /* The (unloaded but important) .rela.plt.unloaded on VxWorks. */
2474 /* The .got.plt section (VxWorks only)*/
2609 htab->sgotplt = bfd_get_section_by_name (abfd, ".got.plt");
2683 htab->relplt = bfd_get_section_by_name (abfd, ".rela.plt");
2684 htab->plt = s = bfd_get_section_by_name (abfd, ".plt");
2763 /* And plt entries. */
2764 if (eind->elf.plt.plist != NULL)
2766 if (edir->elf.plt.plist != NULL)
2771 for (entp = &eind->elf.plt.plist; (ent = *entp) != NULL; )
2775 for (dent = edir->elf.plt.plist; dent != NULL; dent = dent->next)
2778 dent->plt.refcount += ent->plt.refcount;
2785 *entp = edir->elf.plt.plist;
2788 edir->elf.plt.plist = eind->elf.plt.plist;
2789 eind->elf.plt.plist = NULL;
3039 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
3048 ent->next = h->plt.plist;
3051 ent->plt.refcount = 0;
3052 h->plt.plist = ent;
3054 ent->plt.refcount += 1;
3065 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
3546 /* We may need a plt entry if the symbol turns out to be
3837 /* Choose which PLT scheme to use, and set .plt flags appropriately.
3860 Use the old style bss plt if a file makes plt calls
3862 --secure-plt and we never see REL16 relocs. */
3881 info->callbacks->info (_("Using bss-plt due to %B"), htab->old_bfd);
3893 if (htab->plt != NULL
3894 && !bfd_set_section_flags (htab->elf.dynobj, htab->plt, flags))
3934 /* Update the got, plt and dynamic reloc reference counts for the
4057 if (ent->plt.refcount > 0)
4058 ent->plt.refcount -= 1;
4070 /* Set plt output section type, htab->tls_get_addr, and call the
4080 && htab->plt != NULL
4081 && htab->plt->output_section != NULL)
4083 elf_section_type (htab->plt->output_section) = SHT_PROGBITS;
4084 elf_section_flags (htab->plt->output_section) = SHF_ALLOC + SHF_WRITE;
4316 if (ent != NULL && ent->plt.refcount > 0)
4317 ent->plt.refcount -= 1;
4373 won't need a .plt entry. */
4375 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
4376 if (ent->plt.refcount > 0)
4393 h->plt.plist = NULL;
4399 h->plt.plist = NULL;
4498 /* Generate a symbol to mark plt call stubs. For non-PIC code the sym is
4500 specifying the addend on the plt relocation. For -fpic code, the sym
4613 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
4614 if (ent->plt.refcount > 0)
4627 asection *s = htab->plt;
4636 ent->plt.offset = plt_offset;
4661 /* If this is the first .plt entry, make room
4679 in the .plt. This is required to make
4699 ent->plt.offset = plt_offset;
4702 /* We also need to make an entry in the .rela.plt section. */
4712 if (ent->plt.offset
4726 .got.plt. */
4733 ent->plt.offset = (bfd_vma) -1;
4736 ent->plt.offset = (bfd_vma) -1;
4740 h->plt.plist = NULL;
4746 h->plt.plist = NULL;
4817 resolve directly to the function rather than going via the plt.
5059 for old plt/got the got size will be 0 to 32764 (not allocated),
5060 or 32780 to 65536 (header allocated). For new plt/got, the
5128 if (s == htab->plt
5139 if ((s == htab->plt || s == htab->got) && htab->elf.hplt != NULL)
5171 .rela.plt. We must create both sections in
5207 if (htab->plt != NULL && htab->plt->size != 0)
5396 && htab->plt != NULL)
5409 tsec = htab->plt;
5410 toff = ent->plt.offset;
5516 if (tsec == htab->plt
6695 relocation = (htab->plt->output_section->vma
6696 + htab->plt->output_offset
6697 + ent->plt.offset);
6771 || htab->plt == NULL)
6785 relocation = (htab->plt->output_section->vma
6786 + htab->plt->output_offset
6787 + ent->plt.offset);
7095 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
7096 if (ent->plt.offset != (bfd_vma) -1)
7105 reloc_index = ent->plt.offset / 4;
7108 reloc_index = ((ent->plt.offset - htab->plt_initial_entry_size)
7122 /* The first three entries in .got.plt are reserved. */
7129 /* Fill in the .plt on VxWorks. */
7137 htab->plt->contents + ent->plt.offset + 0);
7140 htab->plt->contents + ent->plt.offset + 4);
7154 htab->plt->contents + ent->plt.offset + 0);
7157 htab->plt->contents + ent->plt.offset + 4);
7161 htab->plt->contents + ent->plt.offset + 8);
7163 htab->plt->contents + ent->plt.offset + 12);
7167 start of the .rela.plt section. The value is stored in the
7173 htab->plt->contents + ent->plt.offset + 16);
7182 | (-(ent->plt.offset + 20) & 0x03fffffc)),
7183 htab->plt->contents + ent->plt.offset + 20);
7185 htab->plt->contents + ent->plt.offset + 24);
7187 htab->plt->contents + ent->plt.offset + 28);
7192 bfd_put_32 (output_bfd, (htab->plt->output_section->vma
7193 + htab->plt->output_offset
7194 + ent->plt.offset + 16),
7199 /* Fill in a couple of entries in .rela.plt.unloaded. */
7206 rela.r_offset = (htab->plt->output_section->vma
7207 + htab->plt->output_offset
7208 + ent->plt.offset + 2);
7216 rela.r_offset = (htab->plt->output_section->vma
7217 + htab->plt->output_offset
7218 + ent->plt.offset + 6);
7226 PLT slot. Point it at the middle of the .plt entry. */
7232 rela.r_addend = ent->plt.offset + 16;
7248 rela.r_offset = (htab->plt->output_section->vma
7249 + htab->plt->output_offset
7250 + ent->plt.offset);
7253 /* We don't need to fill in the .plt. The ppc dynamic
7258 bfd_vma val = (htab->glink_pltresolve + ent->plt.offset
7262 htab->plt->contents + ent->plt.offset);
7266 /* Fill in the entry in the .rela.plt section. */
7277 the .plt section. Leave the value alone. */
7291 bfd_vma plt;
7294 plt = (ent->plt.offset
7295 + htab->plt->output_section->vma
7296 + htab->plt->output_offset);
7312 plt -= got;
7314 if (plt + 0x8000 < 0x10000)
7316 bfd_put_32 (output_bfd, LWZ_11_30 + PPC_LO (plt), p);
7327 bfd_put_32 (output_bfd, ADDIS_11_30 + PPC_HA (plt), p);
7329 bfd_put_32 (output_bfd, LWZ_11_11 + PPC_LO (plt), p);
7339 bfd_put_32 (output_bfd, LIS_11 + PPC_HA (plt), p);
7341 bfd_put_32 (output_bfd, LWZ_11_11 + PPC_LO (plt), p);
7440 splt = bfd_get_section_by_name (dynobj, ".plt");
7454 BFD_ASSERT (htab->plt != NULL && sdyn != NULL);
7471 s = htab->plt;
7565 rela.r_offset = (htab->plt->output_section->vma
7566 + htab->plt->output_offset
7574 rela.r_offset = (htab->plt->output_section->vma
7575 + htab->plt->output_offset
7618 * addis 11,30,(plt+(i-1)*4-got)@ha
7619 * lwz 11,(plt+(i-1)*4-got)@l(11)
7623 * # A table of branches, one for each plt entry.
7624 * # The idea is that the plt call stub loads ctr (and r11) with these
7625 * # addresses, so (r11 - res_0) gives the plt index * 4.
7695 /* Build the branch table, one for each plt entry (less one),
7864 /* VxWorks uses the elf default section flags for .plt. */
7871 if (strcmp (sec->name, ".plt") == 0)