Lines Matching defs:plt
568 0, 0, 0, 0 /* replaced with offset to start of .plt. */
591 0, 0, 0, 0 /* replaced with offset to start of .plt. */
647 as the lazy PLT entry. */
658 PLT entry. */
667 /* .eh_frame covering the lazy .plt section. */
686 0, 0, 0, 0, /* R_386_PC32 .plt goes here */
687 0, 0, 0, 0, /* .plt size goes here */
702 /* .eh_frame covering the lazy .plt section with IBT-enabled. */
721 0, 0, 0, 0, /* R_386_PC32 .plt goes here */
722 0, 0, 0, 0, /* .plt size goes here */
737 /* .eh_frame covering the non-lazy .plt section. */
757 0, 0, 0, 0, /* the start of non-lazy .plt goes here */
758 0, 0, 0, 0, /* non-lazy .plt size goes here */
842 /* On VxWorks, the .rel.plt.unloaded section has absolute relocations
843 for the PLTResolve stub and then for each PLT entry. */
883 call ___tls_get_addr@PLT
886 call ___tls_get_addr@PLT
901 call ___tls_get_addr@PLT */
914 call ___tls_get_addr@PLT
941 call ___tls_get_addr@PLT
1692 h->plt.refcount = 1;
1833 PLT. */
1843 as pointer, make sure that PLT is used if foo is
1861 pointer reference doesn't need PLT for pointer
1869 PLT entry directly. */
1889 /* We may need a .plt entry if the symbol is a function
1894 h->plt.refcount = 1;
2141 plt_entry_size = htab->plt.plt_entry_size;
2314 /* Since STT_GNU_IFUNC symbol must go through PLT, we handle
2338 /* STT_GNU_IFUNC symbol must go through PLT. */
2349 plt_offset = h->plt.offset;
2356 plt_offset = h->plt.offset;
2379 if (h->plt.offset == (bfd_vma) -1)
2384 plt_index = (h->plt.offset / plt_entry_size
2385 - htab->plt.has_plt0);
2391 plt_index = h->plt.offset / plt_entry_size;
2447 if (h->plt.offset == (bfd_vma) -1)
2480 || h->plt.offset == (bfd_vma) -1)
2549 /* NB: We can't use the PLT entry as the function address
2691 /* Subtract the .got.plt section address only with a base
2755 calculation. We always want the start of .got.plt. If we
2779 if ((h->plt.offset == (bfd_vma) -1
2783 /* We didn't make a PLT entry for this symbol. This
2789 if (h->plt.offset != (bfd_vma) -1)
2799 plt.offset;
2963 call ___tls_get_addr@PLT
2974 call ___tls_get_addr@PLT
3303 call ___tls_get_addr@PLT
3314 call ___tls_get_addr@PLT
3435 call ___tls_get_addr@PLT
3645 plt_entry_size = htab->plt.plt_entry_size;
3647 /* Use the second PLT section only if there is .plt section. */
3654 /* We keep PLT/GOT entries without dynamic PLT/GOT relocations for
3659 if (h->plt.offset != (bfd_vma) -1)
3665 asection *plt, *resolved_plt, *gotplt, *relplt;
3667 /* When building a static executable, use .iplt, .igot.plt and
3671 plt = htab->elf.splt;
3677 plt = htab->elf.iplt;
3682 VERIFY_PLT_ENTRY (info, h, plt, gotplt, relplt, local_undefweak)
3686 in all the symbols for which we are making plt entries. The
3695 if (plt == htab->elf.splt)
3697 got_offset = (h->plt.offset / plt_entry_size
3698 - htab->plt.has_plt0);
3703 got_offset = h->plt.offset / plt_entry_size;
3709 memcpy (plt->contents + h->plt.offset, htab->plt.plt_entry,
3727 resolved_plt = plt;
3728 plt_offset = h->plt.offset;
3738 + htab->plt.plt_got_offset);
3745 for this PLT entry. */
3748 s = ((h->plt.offset - htab->plt.plt_entry_size)
3749 / htab->plt.plt_entry_size);
3756 the other PLT slots. */
3761 rel.r_offset = (plt->output_section->vma
3762 + plt->output_offset
3763 + h->plt.offset + 2),
3768 the PLT for this GOT entry. */
3781 + htab->plt.plt_got_offset);
3785 as zero for undefined weak symbol in PIE. No PLT relocation
3789 if (htab->plt.has_plt0)
3791 (plt->output_section->vma
3792 + plt->output_offset
3793 + h->plt.offset
3797 /* Fill in the entry in the .rel.plt section. */
3809 in the .got.plt section. */
3833 /* Don't fill the second and third slots in PLT entry for
3835 if (plt == htab->elf.splt && htab->plt.has_plt0)
3839 plt->contents + h->plt.offset
3842 - (h->plt.offset
3844 (plt->contents + h->plt.offset
3852 asection *plt, *got, *gotplt;
3856 plt = htab->plt_got;
3862 || plt == NULL
3883 memcpy (plt->contents + plt_offset, got_plt_entry,
3886 (plt->contents + plt_offset
3892 && (h->plt.offset != (bfd_vma) -1
3896 the .plt section. Leave the value if there were any
3940 if (h->plt.offset == (bfd_vma) -1)
3942 /* STT_GNU_IFUNC is referenced without PLT. */
3973 asection *plt;
3979 /* For non-shared object, we can't use .got.plt, which
3981 equality. We load the GOT entry with the PLT entry. */
3984 plt = htab->plt_second;
3989 plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
3990 plt_offset = h->plt.offset;
3993 (plt->output_section->vma
3994 + plt->output_offset + plt_offset),
4068 /* Finish up undefined weak symbol handling in PIE. Fill its PLT entry
4159 /* UnixWare sets the entsize of .plt to 4, although that doesn't
4164 if (htab->plt.has_plt0)
4168 memcpy (htab->elf.splt->contents, htab->plt.plt0_entry,
4172 htab->plt.plt_entry_size - htab->lazy_plt->plt0_entry_size);
4192 / htab->plt.plt_entry_size) - 1;
4198 addend goes in the PLT directly. */
4216 /* Correct the .rel.plt.unloaded relocations. */
4242 /* Fill PLT entries for undefined weak symbols in PIE. */
4251 /* Fill PLT/GOT entries and allocate dynamic relocations for local
4271 /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
4298 asection *plt;
4303 { ".plt", NULL, NULL, plt_unknown, 0, 0, 0, 0 },
4304 { ".plt.got", NULL, NULL, plt_non_lazy, 0, 0, 0, 0 },
4305 { ".plt.sec", NULL, NULL, plt_second, 0, 0, 0, 0 },
4346 plt = bfd_get_section_by_name (abfd, plts[j].name);
4347 if (plt == NULL || plt->size == 0)
4350 /* Get the PLT section contents. */
4351 plt_contents = (bfd_byte *) bfd_malloc (plt->size);
4354 if (!bfd_get_section_contents (abfd, (asection *) plt,
4355 plt_contents, 0, plt->size))
4361 /* Check what kind of PLT it is. */
4364 && (plt->size >= (lazy_plt->plt0_entry_size
4367 /* Match lazy PLT first. */
4371 /* The fist entry in the lazy IBT PLT is the same as the
4372 normal lazy PLT. */
4384 /* The fist entry in the PIC lazy IBT PLT is the same as
4385 the normal PIC lazy PLT. */
4398 && plt->size >= non_lazy_plt->plt_entry_size)
4400 /* Match non-lazy PLT. */
4411 && plt->size >= non_lazy_ibt_plt->plt_entry_size)
4417 /* Match IBT PLT. */
4425 /* Match PIC IBT PLT. */
4437 plts[j].sec = plt;
4444 /* Skip PLT0 in lazy PLT. */
4454 /* Skip lazy PLT when the second PLT is used. */
4460 n = plt->size / plts[j].plt_entry_size;
4621 /* The Solaris 2 ABI requires a plt symbol on all platforms.