Lines Matching refs:rel
841 /* The size of an external REL relocation. */
892 (mips_elf_hash_table (INFO)->is_vxworks ? ".rela.dyn" : ".rel.dyn")
1690 const Elf_Internal_Rela *rel;
1694 for (rel = relocs; rel < relend; rel += int_rels_per_ext_rel)
1695 if (ELF_R_TYPE (sec->owner, rel->r_info) == R_MIPS_NONE)
1696 return ELF_R_SYM (sec->owner, rel->r_info);
2386 /* Used to store a REL high-part relocation such as R_MIPS_HI16 or
2387 R_MIPS_GOT16. REL is the relocation, INPUT_SECTION is the section
2396 arelent rel;
2403 /* A howto special_function for REL *HI16 relocations. We can only
2430 n->rel = *reloc_entry;
2439 /* A howto special_function for REL R_MIPS*_GOT16 relocations. This is just
2460 /* A howto special_function for REL *LO16 relocations. The *LO16 itself
2493 if (hi->rel.howto->type == R_MIPS_GOT16)
2494 hi->rel.howto = MIPS_ELF_RTYPE_TO_HOWTO (abfd, R_MIPS_HI16, FALSE);
2495 else if (hi->rel.howto->type == R_MIPS16_GOT16)
2496 hi->rel.howto = MIPS_ELF_RTYPE_TO_HOWTO (abfd, R_MIPS16_HI16, FALSE);
2497 else if (hi->rel.howto->type == R_MICROMIPS_GOT16)
2498 hi->rel.howto = MIPS_ELF_RTYPE_TO_HOWTO (abfd, R_MICROMIPS_HI16, FALSE);
2502 hi->rel.addend += (vallo + 0x8000) & 0xffff;
2504 ret = _bfd_mips_elf_generic_reloc (abfd, &hi->rel, symbol, hi->data,
3310 Elf_Internal_Rela rel[3];
3312 memset (rel, 0, sizeof (rel));
3314 rel[0].r_info = ELF_R_INFO (output_bfd, indx, r_type);
3315 rel[0].r_offset = rel[1].r_offset = rel[2].r_offset = offset;
3320 (output_bfd, &rel[0],
3326 (output_bfd, &rel[0],
4075 /* Add room for N relocations to the .rel(a).dyn section in ABFD. */
6358 /* Create a rel.dyn relocation for the dynamic linker to resolve. REL
6366 const Elf_Internal_Rela *rel,
6382 r_type = ELF_R_TYPE (output_bfd, rel->r_info);
6391 _bfd_elf_section_offset (output_bfd, info, input_section, rel[0].r_offset);
6395 _bfd_elf_section_offset (output_bfd, info, input_section, rel[1].r_offset);
6397 _bfd_elf_section_offset (output_bfd, info, input_section, rel[2].r_offset);
6524 /* VxWorks uses RELA rather than REL dynamic relocations. */
6555 cptrel.vaddr = (rel->r_offset
7759 /* Create the .plt, .rel(a).plt, .dynbss and .rel(a).bss sections.
7773 htab->srelplt = bfd_get_linker_section (abfd, ".rel.plt");
7789 /* Return true if relocation REL against section SEC is a REL rather than
7796 const Elf_Internal_Rela *rel)
7803 rel_hdr = elf_section_data (sec)->rel.hdr;
7807 return ((size_t) (rel - relocs)
7811 /* Read the addend for REL relocation REL, which belongs to bfd ABFD.
7813 of the section that REL is against. */
7816 mips_elf_read_rel_addend (bfd *abfd, const Elf_Internal_Rela *rel,
7823 r_type = ELF_R_TYPE (abfd, rel->r_info);
7824 location = contents + rel->r_offset;
7828 addend = mips_elf_obtain_contents (howto, rel, abfd, contents);
7834 /* REL is a relocation in ABFD that needs a partnering LO16 relocation
7835 and *ADDEND is the addend for REL itself. Look for the LO16 relocation
7838 upper bound on the relocations for REL's section. */
7842 const Elf_Internal_Rela *rel,
7851 r_type = ELF_R_TYPE (abfd, rel->r_info);
7878 lo16_relocation = mips_elf_next_relocation (abfd, lo16_type, rel, relend);
7945 const Elf_Internal_Rela *rel;
8221 for (rel = relocs; rel < rel_end; ++rel)
8230 r_symndx = ELF_R_SYM (abfd, rel->r_info);
8231 r_type = ELF_R_TYPE (abfd, rel->r_info);
8314 abfd, (unsigned long) rel->r_offset);
8432 rel->r_addend, info, r_type))
8450 abfd, (unsigned long) rel->r_offset);
8492 if (mips_elf_rel_relocation_p (abfd, sec, relocs, rel))
8497 addend = mips_elf_read_rel_addend (abfd, rel,
8500 mips_elf_add_lo16_rel_addend (abfd, rel, rel_end,
8506 addend = rel->r_addend;
8565 rel->r_addend,
8589 relocs. Make room for this reloc in .rel(a).dyn. */
8641 if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
8650 && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
9722 if (CONST_STRNEQ (name, ".rel"))
9731 If the relocation section is .rel(a).dyn, we always
9853 /* VxWorks uses .rela.dyn instead of .rel.dyn. It does not
9935 /* REL is a relocation in INPUT_BFD that is being copied to OUTPUT_BFD.
9943 asection **local_sections, Elf_Internal_Rela *rel)
9949 if (mips_elf_local_relocation_p (input_bfd, rel, local_sections))
9951 r_type = ELF_R_TYPE (output_bfd, rel->r_info);
9956 rel->r_addend += _bfd_get_gp_value (input_bfd);
9957 rel->r_addend -= _bfd_get_gp_value (output_bfd);
9960 r_symndx = ELF_R_SYM (output_bfd, rel->r_info);
9963 /* Adjust REL's addend to account for section merging. */
9967 _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
9972 rel->r_addend += local_sections[r_symndx]->output_offset;
9996 Elf_Internal_Rela **rel,
10009 r_type = ELF_R_TYPE (output_bfd, (*rel)[i].r_info);
10019 (*rel), count, (*relend),
10034 Elf_Internal_Rela *rel;
10042 for (rel = relocs; rel < relend; ++rel)
10049 REL relocation. */
10051 unsigned int r_type = ELF_R_TYPE (output_bfd, rel->r_info);
10061 relocs, rel));
10065 r_symndx = ELF_R_SYM (input_bfd, rel->r_info);
10067 if (mips_elf_local_relocation_p (input_bfd, rel, local_sections))
10093 input_section, &rel, &relend,
10111 rel->r_offset += 4;
10116 /* If these relocations were originally of the REL variety,
10121 relocs, rel))
10124 addend = mips_elf_read_rel_addend (input_bfd, rel,
10128 && mips_elf_local_relocation_p (input_bfd, rel,
10131 if (!mips_elf_add_lo16_rel_addend (input_bfd, rel, relend,
10143 rel->r_offset);
10150 addend = rel->r_addend;
10152 local_syms, local_sections, rel);
10159 rel->r_offset -= 4;
10161 if (!rela_relocation_p && rel->r_addend)
10163 addend += rel->r_addend;
10212 contents + rel->r_offset);
10214 contents + rel->r_offset + 4);
10218 if (! mips_elf_perform_relocation (info, howto, rel, addend,
10232 if (rel + 1 < relend
10233 && rel->r_offset == rel[1].r_offset
10234 && ELF_R_TYPE (input_bfd, rel[1].r_info) != R_MIPS_NONE)
10241 input_section, info, rel,
10261 (info, msg, name, input_bfd, input_section, rel->r_offset);
10288 input_bfd, input_section, rel->r_offset)))
10301 (info, msg, name, input_bfd, input_section, rel->r_offset);
10308 (info, msg, name, input_bfd, input_section, rel->r_offset);
10353 rel->r_offset -= 4;
10365 contents + rel->r_offset);
10367 contents + rel->r_offset + 4);
10372 if (! mips_elf_perform_relocation (info, howto, rel, value,
10914 Elf_Internal_Rela rel[3];
10916 memset (rel, 0, sizeof (rel));
10918 rel[0].r_info = ELF_R_INFO (output_bfd, 0, R_MIPS_64);
10920 rel[0].r_info = ELF_R_INFO (output_bfd, 0, R_MIPS_32);
10921 rel[0].r_offset = rel[1].r_offset = rel[2].r_offset = offset;
10925 (output_bfd, info, rel,
11040 Elf_Internal_Rela rel;
11106 rel.r_offset = got_address;
11107 rel.r_info = ELF32_R_INFO (htab->root.hplt->indx, R_MIPS_32);
11108 rel.r_addend = plt_offset;
11109 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11113 rel.r_offset = plt_address + 8;
11114 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_MIPS_HI16);
11115 rel.r_addend = got_offset;
11116 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11120 rel.r_offset += 4;
11121 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_MIPS_LO16);
11122 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11128 rel.r_offset = got_address;
11129 rel.r_info = ELF32_R_INFO (h->dynindx, R_MIPS_JUMP_SLOT);
11130 rel.r_addend = 0;
11131 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11169 Elf_Internal_Rela rel;
11173 rel.r_offset = (h->root.u.def.section->output_section->vma
11176 rel.r_info = ELF32_R_INFO (h->dynindx, R_MIPS_COPY);
11177 rel.r_addend = 0;
11178 bfd_elf32_swap_reloca_out (output_bfd, &rel,
11344 Elf_Internal_Rela rel;
11346 bfd_elf32_swap_reloca_in (output_bfd, loc, &rel);
11347 rel.r_info = ELF32_R_INFO (htab->root.hplt->indx, R_MIPS_32);
11348 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11351 bfd_elf32_swap_reloca_in (output_bfd, loc, &rel);
11352 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_MIPS_HI16);
11353 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11356 bfd_elf32_swap_reloca_in (output_bfd, loc, &rel);
11357 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_MIPS_LO16);
11358 bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
11677 Elf_Internal_Rela rel[3];
11680 memset (rel, 0, sizeof (rel));
11681 rel[0].r_info = ELF_R_INFO (output_bfd, 0, R_MIPS_REL32);
11703 rel[0].r_offset = rel[1].r_offset = rel[2].r_offset
11706 (output_bfd, info, rel, NULL,
11804 this, and because the code below handles REL rather than RELA
12399 Elf_Internal_Rela *rel,
12406 switch (ELF_R_TYPE (sec->owner, rel->r_info))
12413 return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
12428 const Elf_Internal_Rela *rel, *relend;
12440 for (rel = relocs; rel < relend; rel++)
12441 switch (ELF_R_TYPE (abfd, rel->r_info))
12599 cookie->rel = cookie->rels;
15920 /* Return address for Ith PLT stub in section PLT, for relocation REL
15925 const arelent *rel ATTRIBUTE_UNUSED)
15982 relplt = bfd_get_section_by_name (abfd, ".rel.plt");