Lines Matching defs:to

21    with this program; if not, write to the Free Software Foundation, Inc.,
132 sometimes the .plt entry crosses a 64k boundary and we need to
133 insert an addis to adjust r12. */
179 /* After that, we need two instructions to load the index, followed by
198 with identical R_PPC64_RELATIVE relocs, there is really no need to
199 propagate .opd relocs; The dynamic linker should be taught to
335 /* An absolute 16 bit branch, for which bit 10 should be set to
336 indicate that the branch is expected to be taken. The lower two
352 /* An absolute 16 bit branch, for which bit 10 should be set to
353 indicate that the branch is not expected to be taken. The lower
399 /* A relative 16 bit branch. Bit 10 should be set to indicate that
400 the branch is expected to be taken. The lower two bits must be
416 /* A relative 16 bit branch. Bit 10 should be set to indicate that
417 the branch is not expected to be taken. The lower two bits must
433 /* Like R_PPC64_ADDR16, but referring to the GOT table entry for the
449 /* Like R_PPC64_ADDR16_LO, but referring to the GOT table entry for
465 /* Like R_PPC64_ADDR16_HI, but referring to the GOT table entry for
481 /* Like R_PPC64_ADDR16_HA, but referring to the GOT table entry for
501 run has to have the data at some particular address. */
549 doubleword64 is set to the load address of the object, plus the
611 /* 32-bit relocation to the symbol's procedure linkage table. */
626 /* 32-bit PC relative relocation to the symbol's procedure linkage table.
642 /* Like R_PPC64_ADDR16_LO, but referring to the PLT table entry for
658 /* Like R_PPC64_ADDR16_HI, but referring to the PLT table entry for
674 /* Like R_PPC64_ADDR16_HA, but referring to the PLT table entry for
874 /* 64-bit relocation to the symbol's procedure linkage table. */
889 /* 64-bit PC relative relocation to the symbol's procedure linkage
994 value to relocate may (!) refer to a PLT entry which the link
996 is unable to fully resolve the symbol, it may (b) create a PLT
997 entry and store the address to the new PLT entry in the GOT.
1000 R_PPC64_GLOB_DAT to tie the symbol to the GOT entry. */
1597 /* Allocates two contiguous entries in the GOT to hold a tls_index structure,
1599 to the first entry relative to the TOC base (r2). */
1659 /* Allocates two contiguous entries in the GOT to hold a tls_index structure,
1660 with values (sym+add)@dtpmod and zero, and computes the offset to the
1661 first entry relative to the TOC base (r2). */
1722 the offset to the entry relative to the TOC base (r2). */
1783 offset to the entry relative to the TOC base (r2). */
1843 /* GNU extension to record C++ vtable hierarchy. */
1858 /* GNU extension to record C++ vtable member usage. */
2399 /* Shortcuts to dynamic linker sections. */
2404 on removed .opd entries to this section so that the sym is removed. */
2556 /* Merge backend specific data from an object file to the output
2611 /* Points to the function code section for local opd entries. */
2613 /* After editing .opd, adjust references to opd local syms. */
2623 /* Flag set when small branches are detected. Used to
3059 /* The following functions are specific to the ELF linker, while
3067 PowerPC64-ELF uses a similar scheme to PowerPC64-XCOFF in that
3069 symbol. A call to foo in a relocatable object file looks like:
3087 unsurprisingly just goes to .foo and the .opd information is unused.
3090 copied to the plt, and the linker patches the nop.
3110 The "reloc ()" notation is supposed to indicate that the linker emits
3118 to carefully copy dynamic link information from one symbol to the other.
3122 creating a shared library containing foo, we need to have both symbols
3123 dynamic so that references to .foo are satisfied during the early
3124 stages of linking. Otherwise the linker might decide to pull in a
3131 /* The linker needs to keep track of the number of relocs that it
3132 decides to copy as dynamic relocs in check_relocs for each symbol.
3133 This is so that it can later discard them if they are found to be
3161 symbol referenced from different input files. This is to support
3163 from one input file to another.
3165 Point to the BFD owning this GOT entry. */
3203 /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
3205 section, and instead use a dynamic relocation to point into the
3212 initialized to the address of a function in a shared library will
3214 redefines the function descriptor symbol to point to the copy. This
3231 Similar to the above, but a 24 bit branch in the stub section won't
3239 Used to call a function in a shared library. If it so happens that
3252 code to adjust the value and save r2 to support multiple toc sections.
3292 value when building the stubs (so the stub knows where to jump. */
3324 /* A pointer to the most recently used stub hash entry against this
3328 /* A pointer to the next symbol starting with a '.' */
3348 /* Set if we twiddled this symbol to weak at some stage. */
3354 tls_optimize clears TLS_GD .. TLS_TPREL when optimizing to
3388 /* Array to keep track of which stub sections have been created, and
3391 /* This is the section to which stubs in the group will be attached. */
3414 /* Short-cuts to get to dynamic linker sections. */
3425 /* Shortcut to .__tls_get_addr and __tls_get_addr. */
3451 /* Small local sym to section mapping cache. */
3455 /* Rename some of the generic section flags to better document how they
3569 descriptor symbol. We need to make any combination of reference and
3572 For a defined function "foo" and an undefined call to "bar":
3627 bfd_vma fields are larger. Setting the bfd_vma to zero makes
3731 Stub names need to include a section id, as there may well be
3732 more than one stub used to reach say, printf, and we need to
3761 /* Add a new stub entry to the stub hash. Not all fields of the new
3826 /* Create .sfpr for code to save and restore fp regs. */
3935 struct ppc_link_hash_entry *to)
3939 if (to->elf.plt.plist != NULL)
3948 for (dent = to->elf.plt.plist; dent != NULL; dent = dent->next)
3958 *entp = to->elf.plt.plist;
3961 to->elf.plt.plist = from->elf.plt.plist;
3986 /* Add reloc counts against the indirect sym to the direct sym
4014 /* If called to transfer flags for a weakdef during processing
4027 /* If we were called to copy over info for a weak sym, that's all. */
4031 /* Copy over got entries that we may have already seen to the
4139 /* Fix function descriptor symbols defined in .opd sections to be
4158 /* This function makes an old ABI object reference to ".bar" cause the
4194 /* This function satisfies all old ABI object references to ".bar" if a
4226 /* Make an undefweak function descriptor sym, which is enough to
4289 /* We need to fix the undefs list for any syms we have twiddled to
4300 not to be needed. */
4406 and PLT reference counting (ie. we don't allow them to create GOT
4407 or PLT entries), there's no possibility or desire to optimize TLS
4408 relocs, and there's not much point in propagating relocs to shared
4426 We don't want to necessarily keep everything referenced by
4429 want to keep the function code symbol's section. This is
4430 easy for global symbols, but for local syms we need to keep
4432 edit_opd deletes entries, we'll use this array to adjust
4564 need to generate a procedure linkage table after all. */
4567 /* It does not make sense to have a procedure linkage
4578 /* The following relocations don't need to propagate the
4630 we are going to need a stub. */
4650 refers to is in a shared lib. */
4716 /* One extra to simplify get_tls_mask. */
4728 -1 to indicate GD and -2 to indicate LD. */
4812 against a local symbol, then we need to copy the reloc
4814 -Bsymbolic, we do not need to copy a reloc against a
4828 may need to keep relocations for symbols satisfied by a
4829 dynamic library if we manage to avoid copy relocs for the
4900 We really need local syms available to do this
5094 function code sym section to be marked. */
5192 function code sym section to be marked. */
5609 /* Called via elf_link_hash_traverse to transfer dynamic linking
5610 information on function code symbol entries to their corresponding
5633 /* Resolve undefined references to dot-symbols as the value
5635 This is to satisfy cases like ".quad .foo". Calls to functions
5652 information to the function descriptor symbol. */
5735 are really in the library we must leave global to prevent the
5747 this hook to a) provide some gcc support functions, and b) transfer
5749 entries, to their corresponding function descriptor symbol entries. */
5794 dynamic object, but we're not including those sections. We have to
5795 change the definition to something the rest of the link can
5830 processor independent code will have arranged for us to see the
5844 only references to the symbol are via the global offset table.
5850 /* If there are no references to this symbol that do not use the
5851 GOT, we don't need to generate a copy reloc. */
5886 sections. Allow them to proceed, but warn that this might
5894 /* This is a reference to a symbol defined by a dynamic object which
5908 from the dynamic object to this symbol will go through the global
5909 offset table. The dynamic linker will use the .dynsym entry to
5911 both the dynamic object and the regular object will refer to the
5914 /* We must generate a R_PPC64_COPY reloc to tell the dynamic linker
5915 to copy the initial value out of the dynamic object and into the
5916 runtime process image. We need to remember the offset into the
5917 .rela.bss section we are going to use. */
5950 /* We aren't supposed to use alloca in BFD because on
5952 calls xmalloc, which might cause the program to crash
5954 return status, so there's no way to gracefully return an
6326 would be possible to remove many more entries for statically linked
6393 /* First run through the relocs to check they are sane, and to
6394 determine whether we need to edit this opd section. */
6408 only interested in the reloc pointing to a function entry
6416 Also, there's nothing to prevent someone putting
6462 discarding the function due to a linker script /DISCARD/,
6603 to be dropped. */
6615 /* Redefine the function descriptor symbol to
6617 necessary to update the value here rather
6628 we'd need to look through the local syms
6658 /* We need to adjust any reloc offsets to point to the
6777 opportunities. The linker has been hacked (see ppc64elf.em) to do
6780 to know the tp offset, and we need to optimize before allocating
6884 that turns out to be the case. */
7072 /* We managed to get rid of a got entry. */
7117 /* Called via elf_link_hash_traverse from ppc64_elf_edit_toc to adjust
7170 /* Examine all relocs referencing .toc sections in order to remove
7218 /* Run through the relocs to see which toc entries might be
7261 /* Anything in the toc ought to be aligned to 8 bytes.
7377 /* Do all the relocs again, to catch reference
7388 to to an entry more than one doubleword in size. */
7624 /* We also need to make an entry in the .rela.plt section. */
7645 to TPREL. */
7651 /* This was a GD entry that has been converted to TPREL. If
7652 there happens to be a TPREL entry we can use that one. */
7712 dynamic pc-relative relocs against symbols which turn out to be
7714 space for relocs that have become local due to symbol visibility
7721 generated via assembly. We want calls to protected symbols to
7722 resolve directly to the function rather than going via the plt.
7723 If people want function pointer comparisons to work as expected
7761 symbols which turn out to need copy relocs or are not
7798 /* Find any dynamic relocs that apply to read-only sections. */
7846 /* Set the contents of the .interp section to the interpreter. */
7895 it is a copy of a linkonce section or due to
7990 to copy relocs into the output file. */
8003 output file. This is mostly to handle .rela.bss and
8006 before the linker maps input sections to output
8009 function which decides whether anything needs to go
8065 /* Add some entries to the .dynamic section. We fill in the
8103 /* If any dynamic relocs apply to a read-only section,
8156 in a regular object file, then it is pointless trying to make
8227 /* Massage our args to the form they really have. */
8242 /* Branches are relative. This is where we are going to. */
8461 we don't really care; The main thing is to make this sym
8559 /* Massage our args to the form they really have. */
8703 /* We can't use output_bfd->section_count here to find the top output
8748 /* Called after the last call to the above function. */
8763 calls, then there's no need to use toc adjusting stubs when branching
8788 /* Hack for linux kernel. .fixup contains branches, but only back to
8801 /* Look for branches to outside of this section. */
8831 /* Calls to dynamic lib functions go through a plt call stub
8832 that uses r2. Branches to undefined symbols might be a call
8850 /* Assume branches to other sections not included in the link need
8851 stubs too, to cover -R and absolute syms. */
8893 /* Ignore branch to self. */
8915 /* If calling back to a section in the process of being tested, we
8921 /* Branches to another section that itself doesn't have any TOC
8922 references are OK. Recursively call ourselves to check. */
8929 sections that call back to current won't be marked as
8972 Build lists of input sections to determine groupings between which
8986 /* This happens to make the list in reverse order,
8995 to use the right TOC (obviously). Also, make sure that .opd gets
9014 Use the last TOC base. This happens to make _init and _fini
9021 sections may result in fewer stubs. More importantly, we need to
9082 /* OK, the size from the start of CURR to the end is less
9087 added here, as stubs contribute to the final output
9100 /* But wait, there's more! Input sections up to stub_group_size
9129 The basic idea here is to examine all the relocations looking for
9130 PC-relative calls to a target that is unreachable with a "bl"
9179 /* Walk over each section attached to the input bfd. */
9187 to do. */
9323 /* Fixup old ABI sym to point at code
9342 call to what looks like a local sym is in
9464 /* Ask the linker to do its stuff. */
9468 /* It would be nice to strip htab->brlt from the output if the
9497 o references to TOC base (SYM@toc / TOC[tc0]) without a
9533 The stubs are kept in a hash table attached to the main linker
9548 /* Allocate memory to hold the linker stubs. */
9558 /* We want to check that built size is the same as calculated
9559 size. rawsize is a convenient location to use. */
9740 /* What to do when ld finds relocations against symbols defined in
9762 to handle the relocations for a section.
9773 This function does not have to worry about setting the reloc
9776 LOCAL_SYMS is a pointer to the swapped in local symbols.
9779 corresponding to the st_shndx field of each local symbol.
9786 going to be the section symbol corresponding to the output
9860 proper TOC base to use. */
10062 /* We changed the symbol. Start over in order to
10115 /* We changed the symbol. Start over in order to
10170 /* The next instruction should be a call to
10171 __tls_get_addr. Peek at the reloc to be sure. */
10242 to get h, sym, sec etc. right. */
10315 /* Calls to functions with a different TOC, such as calls to
10316 shared objects, need to alter the TOC pointer. This is
10317 done using a linkage stub. A REL24 branching to these
10318 linkage stubs needs to be followed by a nop, as the nop
10319 will be replaced with an instruction to restore the TOC
10372 /* Allow crt1 branch to go via a toc adjusting stub. */
10390 (_("%B(%A+0x%lx): sibling call optimization to `%s' "
10425 /* If the branch is out of reach we ought to have a long
10473 /* NOP out calls to undefined weak functions.
10547 /* Relocation is to the entry for this symbol in the global
10571 locally, or the symbol was forced to be local
10603 least significant bit to record whether we have already
10712 /* Relocation is to the entry for this symbol in the
10752 /* TOC16 relocs. We want the offset relative to the TOC base,
10826 /* Relocations that may need to be propagated if this is a
10878 are copied into the output file to be resolved at run
10914 /* This symbol is local, or marked to become local,
10936 /* We need to relocate .opd contents for ld.so.
10939 *r_offset equal to r_addend. */
10995 be computed at runtime, so there's no need to do
11009 to improve backward compatibility with older
11013 /* Adjust pc_relative relocs to have zero in *r_offset. */
11074 alone (it will be set to zero elsewhere in the link). */
11114 "correct" way to do this by defining _DQ forms of all the
11116 doesn't seem to make much sense to use any of these relocs
11175 going to help. */
11278 /* Create a JMP_SLOT reloc to inform the dynamic linker to
11322 /* Used to decide how to sort relocs in an optimal manner for the
11382 /* We stupidly defined DT_PPC64_GLINK to be the start
11384 what ld.so needs, and now have a bigger stub to
11429 DT_RELA to not include it. */
11446 We use it to hold the link-time TOCbase. */
11462 /* brlt is SEC_LINKER_CREATED, so we need to write out relocs for
11473 /* We need to handle writing out multiple GOT sections ourselves,
11474 since we didn't add them to DYNOBJ. We know dynobj is the first