Lines Matching defs:plt
562 0, 0, 0, 0 /* replaced with offset to start of .plt. */
585 0, 0, 0, 0 /* replaced with offset to start of .plt. */
641 as the lazy PLT entry. */
652 PLT entry. */
661 /* .eh_frame covering the lazy .plt section. */
680 0, 0, 0, 0, /* R_386_PC32 .plt goes here */
681 0, 0, 0, 0, /* .plt size goes here */
696 /* .eh_frame covering the lazy .plt section with IBT-enabled. */
715 0, 0, 0, 0, /* R_386_PC32 .plt goes here */
716 0, 0, 0, 0, /* .plt size goes here */
731 /* .eh_frame covering the non-lazy .plt section. */
751 0, 0, 0, 0, /* the start of non-lazy .plt goes here */
752 0, 0, 0, 0, /* non-lazy .plt size goes here */
836 /* On VxWorks, the .rel.plt.unloaded section has absolute relocations
837 for the PLTResolve stub and then for each PLT entry. */
877 call ___tls_get_addr@PLT
880 call ___tls_get_addr@PLT
895 call ___tls_get_addr@PLT */
908 call ___tls_get_addr@PLT
935 call ___tls_get_addr@PLT
1644 h->plt.refcount = 1;
1785 PLT. */
1795 as pointer, make sure that PLT is used if foo is
1813 pointer reference doesn't need PLT for pointer
1821 PLT entry directly. */
1841 /* We may need a .plt entry if the symbol is a function
1846 h->plt.refcount = 1;
2093 plt_entry_size = htab->plt.plt_entry_size;
2266 /* Since STT_GNU_IFUNC symbol must go through PLT, we handle
2290 /* STT_GNU_IFUNC symbol must go through PLT. */
2301 plt_offset = h->plt.offset;
2308 plt_offset = h->plt.offset;
2331 if (h->plt.offset == (bfd_vma) -1)
2336 plt_index = (h->plt.offset / plt_entry_size
2337 - htab->plt.has_plt0);
2343 plt_index = h->plt.offset / plt_entry_size;
2399 if (h->plt.offset == (bfd_vma) -1)
2432 || h->plt.offset == (bfd_vma) -1)
2501 /* NB: We can't use the PLT entry as the function address
2643 /* Subtract the .got.plt section address only with a base
2707 calculation. We always want the start of .got.plt. If we
2731 if ((h->plt.offset == (bfd_vma) -1
2735 /* We didn't make a PLT entry for this symbol. This
2741 if (h->plt.offset != (bfd_vma) -1)
2751 plt_offset = h->plt.offset;
2915 call ___tls_get_addr@PLT
2926 call ___tls_get_addr@PLT
3255 call ___tls_get_addr@PLT
3266 call ___tls_get_addr@PLT
3387 call ___tls_get_addr@PLT
3597 plt_entry_size = htab->plt.plt_entry_size;
3599 /* Use the second PLT section only if there is .plt section. */
3606 /* We keep PLT/GOT entries without dynamic PLT/GOT relocations for
3611 if (h->plt.offset != (bfd_vma) -1)
3617 asection *plt, *resolved_plt, *gotplt, *relplt;
3619 /* When building a static executable, use .iplt, .igot.plt and
3623 plt = htab->elf.splt;
3629 plt = htab->elf.iplt;
3634 VERIFY_PLT_ENTRY (info, h, plt, gotplt, relplt, local_undefweak)
3638 in all the symbols for which we are making plt entries. The
3647 if (plt == htab->elf.splt)
3649 got_offset = (h->plt.offset / plt_entry_size
3650 - htab->plt.has_plt0);
3655 got_offset = h->plt.offset / plt_entry_size;
3661 memcpy (plt->contents + h->plt.offset, htab->plt.plt_entry,
3679 resolved_plt = plt;
3680 plt_offset = h->plt.offset;
3690 + htab->plt.plt_got_offset);
3697 for this PLT entry. */
3700 s = ((h->plt.offset - htab->plt.plt_entry_size)
3701 / htab->plt.plt_entry_size);
3708 the other PLT slots. */
3713 rel.r_offset = (plt->output_section->vma
3714 + plt->output_offset
3715 + h->plt.offset + 2),
3720 the PLT for this GOT entry. */
3733 + htab->plt.plt_got_offset);
3737 as zero for undefined weak symbol in PIE. No PLT relocation
3741 if (htab->plt.has_plt0)
3743 (plt->output_section->vma
3744 + plt->output_offset
3745 + h->plt.offset
3749 /* Fill in the entry in the .rel.plt section. */
3761 in the .got.plt section. */
3785 /* Don't fill the second and third slots in PLT entry for
3787 if (plt == htab->elf.splt && htab->plt.has_plt0)
3791 plt->contents + h->plt.offset
3794 - (h->plt.offset
3796 (plt->contents + h->plt.offset
3804 asection *plt, *got, *gotplt;
3808 plt = htab->plt_got;
3814 || plt == NULL
3835 memcpy (plt->contents + plt_offset, got_plt_entry,
3838 (plt->contents + plt_offset
3844 && (h->plt.offset != (bfd_vma) -1
3848 the .plt section. Leave the value if there were any
3892 if (h->plt.offset == (bfd_vma) -1)
3894 /* STT_GNU_IFUNC is referenced without PLT. */
3925 asection *plt;
3931 /* For non-shared object, we can't use .got.plt, which
3933 equality. We load the GOT entry with the PLT entry. */
3936 plt = htab->plt_second;
3941 plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
3942 plt_offset = h->plt.offset;
3945 (plt->output_section->vma
3946 + plt->output_offset + plt_offset),
4020 /* Finish up undefined weak symbol handling in PIE. Fill its PLT entry
4111 /* UnixWare sets the entsize of .plt to 4, although that doesn't
4116 if (htab->plt.has_plt0)
4120 memcpy (htab->elf.splt->contents, htab->plt.plt0_entry,
4124 htab->plt.plt_entry_size - htab->lazy_plt->plt0_entry_size);
4144 / htab->plt.plt_entry_size) - 1;
4150 addend goes in the PLT directly. */
4168 /* Correct the .rel.plt.unloaded relocations. */
4194 /* Fill PLT entries for undefined weak symbols in PIE. */
4203 /* Fill PLT/GOT entries and allocate dynamic relocations for local
4223 /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
4250 asection *plt;
4255 { ".plt", NULL, NULL, plt_unknown, 0, 0, 0, 0 },
4256 { ".plt.got", NULL, NULL, plt_non_lazy, 0, 0, 0, 0 },
4257 { ".plt.sec", NULL, NULL, plt_second, 0, 0, 0, 0 },
4298 plt = bfd_get_section_by_name (abfd, plts[j].name);
4299 if (plt == NULL || plt->size == 0)
4302 /* Get the PLT section contents. */
4303 plt_contents = (bfd_byte *) bfd_malloc (plt->size);
4306 if (!bfd_get_section_contents (abfd, (asection *) plt,
4307 plt_contents, 0, plt->size))
4313 /* Check what kind of PLT it is. */
4316 && (plt->size >= (lazy_plt->plt0_entry_size
4319 /* Match lazy PLT first. */
4323 /* The fist entry in the lazy IBT PLT is the same as the
4324 normal lazy PLT. */
4336 /* The fist entry in the PIC lazy IBT PLT is the same as
4337 the normal PIC lazy PLT. */
4350 && plt->size >= non_lazy_plt->plt_entry_size)
4352 /* Match non-lazy PLT. */
4363 && plt->size >= non_lazy_ibt_plt->plt_entry_size)
4369 /* Match IBT PLT. */
4377 /* Match PIC IBT PLT. */
4389 plts[j].sec = plt;
4396 /* Skip PLT0 in lazy PLT. */
4406 /* Skip lazy PLT when the second PLT is used. */
4412 n = plt->size / plts[j].plt_entry_size;
4573 /* The Solaris 2 ABI requires a plt symbol on all platforms.