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. */
1730 /* Flags used to auto-detect plt type. */
1902 const asection *plt ATTRIBUTE_UNUSED,
1980 { STRING_COMMA_LEN (".plt"), 0, SHT_NOBITS, SHF_ALLOC + SHF_EXECINSTR },
1992 /* This is what we want for new plt/got. */
1994 { STRING_COMMA_LEN (".plt"), 0, SHT_PROGBITS, SHF_ALLOC };
2347 } plt;
2414 asection *plt;
2423 /* The (unloaded but important) .rela.plt.unloaded on VxWorks. */
2426 /* The .got.plt section (VxWorks only)*/
2561 htab->sgotplt = bfd_get_section_by_name (abfd, ".got.plt");
2635 htab->relplt = bfd_get_section_by_name (abfd, ".rela.plt");
2636 htab->plt = s = bfd_get_section_by_name (abfd, ".plt");
2715 /* And plt entries. */
2716 if (eind->elf.plt.plist != NULL)
2718 if (edir->elf.plt.plist != NULL)
2723 for (entp = &eind->elf.plt.plist; (ent = *entp) != NULL; )
2727 for (dent = edir->elf.plt.plist; dent != NULL; dent = dent->next)
2730 dent->plt.refcount += ent->plt.refcount;
2737 *entp = edir->elf.plt.plist;
2740 edir->elf.plt.plist = eind->elf.plt.plist;
2741 eind->elf.plt.plist = NULL;
2991 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
3000 ent->next = h->plt.plist;
3003 ent->plt.refcount = 0;
3004 h->plt.plist = ent;
3006 ent->plt.refcount += 1;
3017 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
3465 /* We may need a plt entry if the symbol turns out to be
3756 /* Choose which PLT scheme to use, and set .plt flags appropriately.
3779 Use the old style bss plt if a file makes plt calls
3781 --secure-plt and we never see REL16 relocs. */
3800 info->callbacks->info (_("Using bss-plt due to %B"), htab->old_bfd);
3812 if (htab->plt != NULL
3813 && !bfd_set_section_flags (htab->elf.dynobj, htab->plt, flags))
3853 /* Update the got, plt and dynamic reloc reference counts for the
3979 if (ent->plt.refcount > 0)
3980 ent->plt.refcount -= 1;
4001 && htab->plt != NULL
4002 && htab->plt->output_section != NULL)
4004 elf_section_type (htab->plt->output_section) = SHT_PROGBITS;
4005 elf_section_flags (htab->plt->output_section) = SHF_ALLOC + SHF_WRITE;
4132 if (ent != NULL && ent->plt.refcount > 0)
4133 ent->plt.refcount -= 1;
4240 won't need a .plt entry. */
4242 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
4243 if (ent->plt.refcount > 0)
4260 h->plt.plist = NULL;
4266 h->plt.plist = NULL;
4365 /* Generate a symbol to mark plt call stubs. For non-PIC code the sym is
4367 specifying the addend on the plt relocation. For -fpic code, the sym
4480 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
4481 if (ent->plt.refcount > 0)
4494 asection *s = htab->plt;
4503 ent->plt.offset = plt_offset;
4528 /* If this is the first .plt entry, make room
4546 in the .plt. This is required to make
4566 ent->plt.offset = plt_offset;
4569 /* We also need to make an entry in the .rela.plt section. */
4579 if (ent->plt.offset
4593 .got.plt. */
4600 ent->plt.offset = (bfd_vma) -1;
4603 ent->plt.offset = (bfd_vma) -1;
4607 h->plt.plist = NULL;
4613 h->plt.plist = NULL;
4681 resolve directly to the function rather than going via the plt.
4923 for old plt/got the got size will be 0 to 32764 (not allocated),
4924 or 32780 to 65536 (header allocated). For new plt/got, the
4992 if (s == htab->plt
5003 if ((s == htab->plt || s == htab->got) && htab->elf.hplt != NULL)
5035 .rela.plt. We must create both sections in
5071 if (htab->plt != NULL && htab->plt->size != 0)
5260 && htab->plt != NULL)
5273 tsec = htab->plt;
5274 toff = ent->plt.offset;
5380 if (tsec == htab->plt
6497 relocation = (htab->plt->output_section->vma
6498 + htab->plt->output_offset
6499 + ent->plt.offset);
6573 || htab->plt == NULL)
6587 relocation = (htab->plt->output_section->vma
6588 + htab->plt->output_offset
6589 + ent->plt.offset);
6897 for (ent = h->plt.plist; ent != NULL; ent = ent->next)
6898 if (ent->plt.offset != (bfd_vma) -1)
6907 reloc_index = ent->plt.offset / 4;
6910 reloc_index = ((ent->plt.offset - htab->plt_initial_entry_size)
6924 /* The first three entries in .got.plt are reserved. */
6931 /* Fill in the .plt on VxWorks. */
6939 htab->plt->contents + ent->plt.offset + 0);
6942 htab->plt->contents + ent->plt.offset + 4);
6956 htab->plt->contents + ent->plt.offset + 0);
6959 htab->plt->contents + ent->plt.offset + 4);
6963 htab->plt->contents + ent->plt.offset + 8);
6965 htab->plt->contents + ent->plt.offset + 12);
6969 start of the .rela.plt section. The value is stored in the
6975 htab->plt->contents + ent->plt.offset + 16);
6984 | (-(ent->plt.offset + 20) & 0x03fffffc)),
6985 htab->plt->contents + ent->plt.offset + 20);
6987 htab->plt->contents + ent->plt.offset + 24);
6989 htab->plt->contents + ent->plt.offset + 28);
6994 bfd_put_32 (output_bfd, (htab->plt->output_section->vma
6995 + htab->plt->output_offset
6996 + ent->plt.offset + 16),
7001 /* Fill in a couple of entries in .rela.plt.unloaded. */
7008 rela.r_offset = (htab->plt->output_section->vma
7009 + htab->plt->output_offset
7010 + ent->plt.offset + 2);
7018 rela.r_offset = (htab->plt->output_section->vma
7019 + htab->plt->output_offset
7020 + ent->plt.offset + 6);
7028 PLT slot. Point it at the middle of the .plt entry. */
7034 rela.r_addend = ent->plt.offset + 16;
7050 rela.r_offset = (htab->plt->output_section->vma
7051 + htab->plt->output_offset
7052 + ent->plt.offset);
7055 /* We don't need to fill in the .plt. The ppc dynamic
7060 bfd_vma val = (htab->glink_pltresolve + ent->plt.offset
7064 htab->plt->contents + ent->plt.offset);
7068 /* Fill in the entry in the .rela.plt section. */
7079 the .plt section. Leave the value alone. */
7093 bfd_vma plt;
7096 plt = (ent->plt.offset
7097 + htab->plt->output_section->vma
7098 + htab->plt->output_offset);
7114 plt -= got;
7116 if (plt + 0x8000 < 0x10000)
7118 bfd_put_32 (output_bfd, LWZ_11_30 + PPC_LO (plt), p);
7129 bfd_put_32 (output_bfd, ADDIS_11_30 + PPC_HA (plt), p);
7131 bfd_put_32 (output_bfd, LWZ_11_11 + PPC_LO (plt), p);
7141 bfd_put_32 (output_bfd, LIS_11 + PPC_HA (plt), p);
7143 bfd_put_32 (output_bfd, LWZ_11_11 + PPC_LO (plt), p);
7242 splt = bfd_get_section_by_name (dynobj, ".plt");
7256 BFD_ASSERT (htab->plt != NULL && sdyn != NULL);
7273 s = htab->plt;
7367 rela.r_offset = (htab->plt->output_section->vma
7368 + htab->plt->output_offset
7376 rela.r_offset = (htab->plt->output_section->vma
7377 + htab->plt->output_offset
7420 * addis 11,30,(plt+(i-1)*4-got)@ha
7421 * lwz 11,(plt+(i-1)*4-got)@l(11)
7425 * # A table of branches, one for each plt entry.
7426 * # The idea is that the plt call stub loads ctr (and r11) with these
7427 * # addresses, so (r11 - res_0) gives the plt index * 4.
7497 /* Build the branch table, one for each plt entry (less one),
7666 /* VxWorks uses the elf default section flags for .plt. */
7673 if (strcmp (sec->name, ".plt") == 0)