Lines Matching defs:to

62   global and local TLS symbols. Note that this is different to none
65 In the traditional TLS mechanism, the double GOT entry is used to
76 In the TLS descriptor mechanism the double GOT entry is used to
120 local symbol structure to record the GOT offset allocated.
129 encountered. The implementation uses the LSB of the GOT offset to
131 emitted. All of the TLS code that uses the GOT offset needs to take
132 care to mask out this flag bit before using the offset.
271 in x16 and needs to work out PLTGOT[1] by using an address of
333 Therefore, the table needs to be synced with BFD_RELOC_AARCH64_*
460 /* Group relocations to create a 16, 32, 48 or 64 bit
568 /* Group relocations to create high part of a 16, 32, 48 or 64 bit
570 to MOVN or MOVZ depending on sign of calculated value. */
617 /* Relocations to generate 19, 21 and 33 bit PC-relative load/store
832 /* Set a load-literal immediate field to bits
848 /* Get to the page for the GOT entry for the symbol
939 /* LD32: GOT offset to the page address of GOT table.
955 /* LD64: GOT offset to the page address of GOT table.
971 /* Get to the page for the GOT entry for the symbol
1016 /* Lower 16 bits of GOT offset to tls_index. */
1031 /* Higher 16 bits of GOT offset to tls_index. */
1130 /* ADD: bit[23:12] of byte offset to module TLS base address. */
1145 /* Unsigned 12 bit byte offset to module TLS base address. */
1190 /* Get to the page for the GOT entry for the symbol
1220 /* LD/ST16: bit[11:1] of byte offset to module TLS base address. */
1250 /* LD/ST32: bit[11:2] of byte offset to module TLS base address. */
1280 /* LD/ST64: bit[11:3] of byte offset to module TLS base address. */
1310 /* LD/ST8: bit[11:0] of byte offset to module TLS base address. */
1340 /* MOVZ: bit[15:0] of byte offset to module TLS base address. */
1370 /* MOVZ: bit[31:16] of byte offset to module TLS base address. */
1400 /* MOVZ: bit[47:32] of byte offset to module TLS base address. */
1555 /* Get to the page for the GOT entry for the symbol
1898 bfd_reloc_code_real_type to;
1901 /* Map bfd generic reloc to AArch64-specific reloc. */
1924 /* Convert bfd generic reloc to AArch64-specific reloc. */
1930 code = elf_aarch64_reloc_map[i].to;
2015 The entry_names are used to do simple name mangling on the stubs.
2109 value when building the stubs (so the stub knows where to jump). */
2126 stub name in the hash table has to be unique; this does not, so
2130 /* The instruction which caused this stub to be generated (only valid for
2138 /* Used to build a map of a section. This is required for mixed-endian
2161 /* The size of the thread control block which is defined to be two pointers. */
2186 /* Zero to warn when linking objects with incompatible enum sizes. */
2189 /* Zero to warn when linking objects with incompatible wchar_t sizes. */
2229 /* Since PLT entries have variable size, we need to record the
2238 /* A pointer to the most recently used stub hash entry against this
2278 /* Nonzero to force PIC branch veneers. */
2319 /* Array to keep track of which stub sections have been created, and
2323 /* This is the section to which stubs in the group will be
2337 to be necessary yet), and -1 if needed but not determined
2341 /* The GOT offset for the lazy trampoline. Communicated to the
2509 /* Add reloc counts against the indirect sym to the direct sym
2662 /* We don't want to redirect any old unconditional jump in this way,
2664 acceptable for the IP0 and IP1 registers to be clobbered. */
2731 Stub names need to include a section id, as there may well be
2732 more than one stub used to reach say, printf, and we need to
2785 Fix or create the stub section used to collect stubs attached to
2812 section to the stub hash. Not all fields of the new stub entry are
2845 /* Add a new stub entry in the final stub section to the stub hash.
2889 /* Massage our args to the form they really have. */
2961 /* We want the value relative to the address 12 bytes back from the
3007 /* Massage our args to the form they really have. */
3074 /* We can't use output_bfd->section_count here to find the top output
3113 Build lists of input sections to determine groupings between which
3129 /* This happens to make the list in reverse order,
3138 sections may result in fewer stubs. More importantly, we need to
3171 /* OK, the size from the start of CURR to the end is less
3176 stubs added here, as stubs contribute to the final output
3186 /* But wait, there's more! Input sections up to stub_group_size
3251 is set equal to RT.
3404 it is possible for a 64-bit multiply-accumulate instruction to generate an
3405 incorrect result. The details are quite complex and hard to
3411 the original instruction with a branch to the patch. This function checks
3455 /* Used to order a list of mapping symbols by address. */
3587 /* Helper predicate to look for cortex-a53 erratum 843419 sequence 1. */
3610 seen set P_VENEER_I to the offset of the final LOAD/STORE
3684 4096. This is important in order to ensure that the insertion
3740 attached to the input section in which an erratum sequence has
3744 copied instruction will have had any relocations applied to it.
3775 Return TRUE on successful scan, FALSE on failure to scan.
3852 The basic idea here is to examine all the relocations looking for
3853 PC-relative calls to a target that is unreachable with a "bl"
3871 /* Propagate mach to stub bfd, because it may not have been
3948 /* Walk over each section attached to the input bfd. */
3955 to do. */
4076 use the PLT stub as target address to
4100 target address to decide whether a long
4195 /* Ask the linker to do its stuff. */
4207 stubs are kept in a hash table attached to the main linker hash
4230 /* Allocate memory to hold the linker stubs. */
4249 /* Add an entry to the code/data map for section SEC. */
4378 the least significant bit to record whether we have
4381 entry to initialize the value. This is done in the
4400 /* Change R_TYPE to a more efficient access model where possible,
4624 referred to in h. */
4670 referred to in h. */
4725 /* Helper to insert branches to erratum 835769 stubs in the right
4867 /* Fix code to point to erratum 835769 stubs. */
4936 which refer to the same offset. */
5001 /* Need a dynamic relocation to get the real function
5034 do not want to fiddle with the addend. Otherwise,
5035 we need to include the symbol value so that it
5067 /* We can't use h->got.offset here to save state, or
5092 we use the least significant bit to record
5096 relocation entry to initialize the value. This
5153 relocations are copied into the output file to be resolved at
5218 /* Sanity to check that we have previously allocated
5220 number of relocations we actually want to emit. */
5224 /* If this reloc is against an external symbol, we do not want to
5225 fiddle with the addend. Otherwise, we need to include the symbol
5245 /* A call to an undefined weak symbol is converted to a jump to
5247 The jump to the next instruction is optimized as a NOP.
5255 /* If the call goes through a PLT entry, make sure to
5256 check distance to the right destination address. */
5261 /* Check if a stub has to be inserted because the destination
5265 /* If the branch destination is directed to plt stub, "value" will be
5267 contain non-zero value, for example call to local function symbol
5272 /* The target is out of reach, so redirect the branch to
5282 /* We have redirected the destination to stub entry address,
5398 linking stageh. While for share library, we need to update
5399 the content of GOT entry according to the share objects
5400 loading base address. So we need to generate a
5415 /* Update the relocation value to GOT entry addr as we have transformed
5470 linking stage. While for share library, we need to update
5471 the content of GOT entry according to the share objects
5472 loading base address. So we need to generate a
5488 /* Update the relocation value to GOT entry addr as we have transformed
5622 is to then call final_link_relocate. Return other values in the
5725 /* Move the current relocation to the second instruction in
5852 /* We choose to fixup the BL and NOP instructions using the
5853 offset from the second relocation to allow flexibility in
6080 /* An object file might have a reference to a local
6155 from a reloc type to another.
6174 same offset. In that case we are supposed to treat the
6257 relocation to fixup the tls offset at load
6379 section to hold our R_AARCH64_TLSDESC, the next
6455 enum does not have a value to cover that situation).
6457 Try to catch this situation here and provide a more helpful
6458 error message to the user. */
6525 /* Function to keep AArch64 specific flags in the ELF header. */
6542 /* Merge backend specific data from an object file to the output
6562 /* The following seems bogus to me -- The flags are initialized in
6574 architecture, instead allow future merges to do this. If no
6577 to the default values. */
6597 /* Check to see if the input BFD actually contains any sections. If
6603 Also check to see if there are no code sections in the input.
6604 In this case there is no need to check for code specific flags.
6605 XXX - do we need to worry about floating-point format compatability
6827 dynamic object, but we're not including those sections. We have to
6828 change the definition to something the rest of the link can
6850 an input file, but the symbol wasn't referred to
6861 /* Otherwise, reset to -1. */
6866 processor independent code will have arranged for us to see the
6880 only references to the symbol are via the global offset table.
6886 /* If there are no references to this symbol that do not use the
6887 GOT, we don't need to generate a copy reloc. */
6902 from the dynamic object to this symbol will go through the global
6903 offset table. The dynamic linker will use the .dynsym entry to
6905 both the dynamic object and the regular object will refer to the
6910 /* We must generate a R_AARCH64_COPY reloc to tell the dynamic linker
6911 to copy the initial value out of the dynamic object and into the
6949 /* Create the .got section to hold the global offset table. */
6987 because we don't want to define the symbol if we are not creating
7099 /* If a relocation refers to _GLOBAL_OFFSET_TABLE_, create the .got.
7101 when calculating the pc-relative address to .got section which is
7102 used to initialize the gp register. */
7154 /* We don't need to handle relocs into sections not going into
7168 /* No need to do anything if we're not creating a shared
7203 We really need local syms available to do this
7242 /* RR: We probably want to keep a consistency check that
7316 are able to relax. Turn off the GD flag, without
7368 sections have not yet been mapped to output sections.
7375 /* FIXME:: RR need to handle these in shared libraries
7471 /* Find the nearest line to a particular section and offset, for error
7577 /* There ought to be a place to keep ELF backend specific flags, but
7597 /* A structure used to record a list of sections, independently
7607 /* Unfortunately we need to keep a list of sections for which
7610 to be called on a section which has had an elf_data_structure
7639 to the sections_with_aarch64_elf_section_data list in forward order and
7641 to the ld-srec/sec64k.exp linker test. */
7656 /* Record the entry prior to this one - it is the entry we are
7657 most likely to want to locate next time. Also this way if we
7660 be caching a pointer that is about to be freed. */
7747 /* Massage our args to the form they really have. */
7753 /* Ensure this stub is attached to the current section being
7921 /* We need to create .got section. */
7944 There is no need to process bfd_link_hash_indirect symbols here
7947 called to copy all relevant data from the generic to the concrete
7986 not generating a shared library, then set the symbol to this
7987 location in the .plt. This is required to make function
7997 small model PLT entries. We later need to find a way
8001 /* We also need to make an entry in the .got.plt section, which
8005 /* We also need to make an entry in the .rela.plt section. */
8008 /* We need to ensure that all GOT entries that serve the PLT
8013 sizing we adjust reloc_count to indicate the number of
8129 dynamic pc-relative relocs against symbols which turn out to be
8131 space for pc-relative relocs that have become local due to symbol
8138 We want calls to protected symbols to resolve directly to the
8140 function pointer comparisons to work as expected then they
8176 symbols which turn out to need copy relocs or are not
8234 There is no need to process bfd_link_hash_indirect symbols here
8237 called to copy all relevant data from the generic to the concrete
8303 /* Find any dynamic relocs that apply to read-only sections. */
8381 it is a copy of a linkonce section or due to
8481 it's not incremented, so in order to compute the space reserved
8482 for them, it suffices to multiply the reloc count by the jump
8505 /* Init mapping symbols information to use later to distingush between
8540 to copy relocs into the output file. */
8553 output file. This is mostly to handle .rela.bss and
8556 before the linker maps input sections to output
8559 function which decides whether anything needs to go
8581 /* Add some entries to the .dynamic section. We fill in the
8616 /* If any dynamic relocs apply to a read-only section,
8675 corresponds to this symbol. This is the index of this symbol
8680 corresponds to this function. Each .got entry is GOT_ENTRY_SIZE
8722 /* All the GOTPLT Entries are essentially initialized to PLT0. */
8749 /* Compute the relocation entry to used based on PLT index and do
8751 to account for this entry. */
8756 /* Size sections even though they're not dynamic. We use it to setup
8849 /* If the symbol is weak we need to clear the value.
8854 (this is a clue for the dynamic linker, to make function
8999 PLT0 will be slightly different in ELF32 due to different got entry
9227 It also allows a period initiated suffix to be added to the symbol, ie:
9237 longer conform to the ARM ELF ABI. */
9246 "strip --strip-unneeded" tool. These symbols might needed in order to
9248 it should be safe to remove them. */
9352 to them in our hash. */