Home | History | Annotate | Download | only in bfd

Lines Matching defs:plt

71       /* We need to create .iplt, .rel[a].iplt, .igot and .igot.plt
88 /* We don't need the .igot section if we have the .igot.plt
91 s = bfd_make_section_with_flags (abfd, ".igot.plt", flags);
103 /* Allocate space in .plt, .got and associated reloc sections for
115 asection *plt, *gotplt, *relplt;
120 /* If AVOID_PLT is TRUE, don't use PLT if possible. */
121 bool use_plt = !avoid_plt || h->plt.refcount > 0;
125 in executable or it isn't referenced via PLT, the address of
127 the address of its .plt slot may be used. Pointer equality may
128 not work correctly. PIE or non-PLT reference should be used if
133 to its PLT entry which should be resolved by R_*_IRELATIVE at
134 run-time. All external references should be resolved to its PLT in
155 /* When the symbol is marked with regular reference, if PLT isn't used
157 if there is non-GOT reference and use PLT if there is PC-relative
170 /* Must use PLT for PC-relative reference. */
181 if (h->plt.refcount <= 0 && h->got.refcount <= 0)
184 h->plt = htab->init_plt_offset;
193 if (h->plt.refcount > 0
197 h->plt = htab->init_plt_offset;
209 /* When building a static executable, use .iplt, .igot.plt and
213 plt = htab->splt;
217 /* If this is the first .plt entry and PLT is used, make room for
219 if (plt->size == 0 && use_plt)
220 plt->size += plt_header_size;
224 plt = htab->iplt;
231 /* Don't update value of STT_GNU_IFUNC symbol to PLT. We need
233 h->plt.offset = plt->size;
235 /* Make room for this entry in the .plt/.iplt section. */
236 plt->size += plt_entry_size;
238 /* We also need to make an entry in the .got.plt/.got.iplt section,
243 /* We also need to make an entry in the .rel[a].plt/.rel[a].iplt
244 section for GOTPLT relocation if PLT is used. */
252 there is a non-GOT reference in a PIC object or PLT isn't used. */
285 /* For STT_GNU_IFUNC symbol, .got.plt has the real function address
286 and .got has the PLT entry adddress. We will load the GOT entry
287 with the PLT entry in finish_dynamic_symbol if it is used. For
288 branch, it uses .got.plt. For symbol value, if PLT is used,
289 1. Use .got.plt in a PIC object if it is forced local or not
291 2. Use .got.plt in a non-PIC object if pointer equality isn't
293 3. Use .got.plt in PIE.
294 4. Use .got.plt if .got isn't used.
297 If PLT isn't used, always use .got for symbol value.
299 executable without PLT. */
310 /* Use .got.plt. */
317 /* PLT isn't used. */
318 h->plt.offset = (bfd_vma) -1;
330 /* Need to relocate the GOT entry in a PIC object or PLT isn't
331 used. Otherwise, the GOT entry will be filled with the PLT