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
1703 h->plt.refcount = 1;
1858 PLT. */
1868 as pointer, make sure that PLT is used if foo is
1886 pointer reference doesn't need PLT for pointer
1894 PLT entry directly. */
1914 /* We may need a .plt entry if the symbol is a function
1919 h->plt.refcount = 1;
2166 plt_entry_size = htab->plt.plt_entry_size;
2339 /* Since STT_GNU_IFUNC symbol must go through PLT, we handle
2363 /* STT_GNU_IFUNC symbol must go through PLT. */
2374 plt_offset = h->plt.offset;
2381 plt_offset = h->plt.offset;
2404 if (h->plt.offset == (bfd_vma) -1)
2409 plt_index = (h->plt.offset / plt_entry_size
2410 - htab->plt.has_plt0);
2416 plt_index = h->plt.offset / plt_entry_size;
2472 if (h->plt.offset == (bfd_vma) -1)
2505 || h->plt.offset == (bfd_vma) -1)
2574 /* NB: We can't use the PLT entry as the function address
2716 /* Subtract the .got.plt section address only with a base
2780 calculation. We always want the start of .got.plt. If we
2804 if ((h->plt.offset == (bfd_vma) -1
2808 /* We didn't make a PLT entry for this symbol. This
2814 if (h->plt.offset != (bfd_vma) -1)
2824 plt_offset = h->plt.offset;
2988 call ___tls_get_addr@PLT
2999 call ___tls_get_addr@PLT
3322 call ___tls_get_addr@PLT
3333 call ___tls_get_addr@PLT
3454 call ___tls_get_addr@PLT
3656 plt_entry_size = htab->plt.plt_entry_size;
3658 /* Use the second PLT section only if there is .plt section. */
3665 /* We keep PLT/GOT entries without dynamic PLT/GOT relocations for
3670 if (h->plt.offset != (bfd_vma) -1)
3676 asection *plt, *resolved_plt, *gotplt, *relplt;
3678 /* When building a static executable, use .iplt, .igot.plt and
3682 plt = htab->elf.splt;
3688 plt = htab->elf.iplt;
3693 VERIFY_PLT_ENTRY (info, h, plt, gotplt, relplt, local_undefweak)
3697 in all the symbols for which we are making plt entries. The
3706 if (plt == htab->elf.splt)
3708 got_offset = (h->plt.offset / plt_entry_size
3709 - htab->plt.has_plt0);
3714 got_offset = h->plt.offset / plt_entry_size;
3720 memcpy (plt->contents + h->plt.offset, htab->plt.plt_entry,
3738 resolved_plt = plt;
3739 plt_offset = h->plt.offset;
3749 + htab->plt.plt_got_offset);
3756 for this PLT entry. */
3759 s = ((h->plt.offset - htab->plt.plt_entry_size)
3760 / htab->plt.plt_entry_size);
3767 the other PLT slots. */
3772 rel.r_offset = (plt->output_section->vma
3773 + plt->output_offset
3774 + h->plt.offset + 2),
3779 the PLT for this GOT entry. */
3792 + htab->plt.plt_got_offset);
3796 as zero for undefined weak symbol in PIE. No PLT relocation
3800 if (htab->plt.has_plt0)
3802 (plt->output_section->vma
3803 + plt->output_offset
3804 + h->plt.offset
3808 /* Fill in the entry in the .rel.plt section. */
3820 in the .got.plt section. */
3844 /* Don't fill the second and third slots in PLT entry for
3846 if (plt == htab->elf.splt && htab->plt.has_plt0)
3850 plt->contents + h->plt.offset
3853 - (h->plt.offset
3855 (plt->contents + h->plt.offset
3863 asection *plt, *got, *gotplt;
3867 plt = htab->plt_got;
3873 || plt == NULL
3894 memcpy (plt->contents + plt_offset, got_plt_entry,
3897 (plt->contents + plt_offset
3903 && (h->plt.offset != (bfd_vma) -1
3907 the .plt section. Leave the value if there were any
3951 if (h->plt.offset == (bfd_vma) -1)
3953 /* STT_GNU_IFUNC is referenced without PLT. */
3984 asection *plt;
3990 /* For non-shared object, we can't use .got.plt, which
3992 equality. We load the GOT entry with the PLT entry. */
3995 plt = htab->plt_second;
4000 plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
4001 plt_offset = h->plt.offset;
4004 (plt->output_section->vma
4005 + plt->output_offset + plt_offset),
4079 /* Finish up undefined weak symbol handling in PIE. Fill its PLT entry
4171 /* UnixWare sets the entsize of .plt to 4, although that doesn't
4176 if (htab->plt.has_plt0)
4180 memcpy (htab->elf.splt->contents, htab->plt.plt0_entry,
4184 htab->plt.plt_entry_size - htab->lazy_plt->plt0_entry_size);
4204 / htab->plt.plt_entry_size) - 1;
4210 addend goes in the PLT directly. */
4228 /* Correct the .rel.plt.unloaded relocations. */
4254 /* Fill PLT entries for undefined weak symbols in PIE. */
4263 /* Fill PLT/GOT entries and allocate dynamic relocations for local
4283 /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols if
4312 asection *plt;
4317 { ".plt", NULL, NULL, plt_unknown, 0, 0, 0, 0 },
4318 { ".plt.got", NULL, NULL, plt_non_lazy, 0, 0, 0, 0 },
4319 { ".plt.sec", NULL, NULL, plt_second, 0, 0, 0, 0 },
4360 plt = bfd_get_section_by_name (abfd, plts[j].name);
4361 if (plt == NULL || plt->size == 0)
4364 /* Get the PLT section contents. */
4365 plt_contents = (bfd_byte *) bfd_malloc (plt->size);
4368 if (!bfd_get_section_contents (abfd, (asection *) plt,
4369 plt_contents, 0, plt->size))
4375 /* Check what kind of PLT it is. */
4378 && (plt->size >= (lazy_plt->plt0_entry_size
4381 /* Match lazy PLT first. */
4385 /* The fist entry in the lazy IBT PLT is the same as the
4386 normal lazy PLT. */
4398 /* The fist entry in the PIC lazy IBT PLT is the same as
4399 the normal PIC lazy PLT. */
4412 && plt->size >= non_lazy_plt->plt_entry_size)
4414 /* Match non-lazy PLT. */
4425 && plt->size >= non_lazy_ibt_plt->plt_entry_size)
4431 /* Match IBT PLT. */
4439 /* Match PIC IBT PLT. */
4451 plts[j].sec = plt;
4458 /* Skip PLT0 in lazy PLT. */
4468 /* Skip lazy PLT when the second PLT is used. */
4474 n = plt->size / plts[j].plt_entry_size;
4689 /* The Solaris 2 ABI requires a plt symbol on all platforms.