Lines Matching refs:arsp

551 tls_fixups(Ofl_desc *ofl, Rel_desc *arsp)  in tls_fixups()  argument
553 Sym_desc *sdp = arsp->rel_sym; in tls_fixups()
554 Word rtype = arsp->rel_rtype; in tls_fixups()
557 offset = (uchar_t *)((uintptr_t)arsp->rel_roffset + in tls_fixups()
558 (uintptr_t)_elf_getxoff(arsp->rel_isdesc->is_indata) + in tls_fixups()
559 (uintptr_t)RELAUX_GET_OSDESC(arsp)->os_outdata->d_buf); in tls_fixups()
587 R_AMD64_GOTTPOFF, arsp, ld_reloc_sym_name)); in tls_fixups()
588 arsp->rel_rtype = R_AMD64_GOTTPOFF; in tls_fixups()
589 arsp->rel_roffset += 8; in tls_fixups()
590 arsp->rel_raddend = (Sxword)-4; in tls_fixups()
606 R_AMD64_NONE, arsp, ld_reloc_sym_name)); in tls_fixups()
632 R_AMD64_TPOFF32, arsp, ld_reloc_sym_name)); in tls_fixups()
633 arsp->rel_rtype = R_AMD64_TPOFF32; in tls_fixups()
634 arsp->rel_roffset += 8; in tls_fixups()
635 arsp->rel_raddend = 0; in tls_fixups()
677 R_AMD64_TPOFF32, arsp, ld_reloc_sym_name)); in tls_fixups()
678 arsp->rel_rtype = R_AMD64_TPOFF32; in tls_fixups()
679 arsp->rel_raddend = 0; in tls_fixups()
719 conv_reloc_amd64_type(arsp->rel_rtype, 0, &inv_buf), in tls_fixups()
720 arsp->rel_isdesc->is_file->ifl_name, in tls_fixups()
721 ld_reloc_sym_name(arsp), in tls_fixups()
722 arsp->rel_isdesc->is_name, in tls_fixups()
723 EC_OFF(arsp->rel_roffset)); in tls_fixups()
741 R_AMD64_NONE, arsp, ld_reloc_sym_name)); in tls_fixups()
756 R_AMD64_TPOFF32, arsp, ld_reloc_sym_name)); in tls_fixups()
757 arsp->rel_rtype = R_AMD64_TPOFF32; in tls_fixups()
767 Rel_desc *arsp; in ld_do_activerelocs() local
779 REL_CACHE_TRAVERSE(&ofl->ofl_actrels, idx, rcbp, arsp) { in ld_do_activerelocs()
793 if ((arsp->rel_isdesc->is_flags & FLG_IS_DISCARD) && in ld_do_activerelocs()
794 ((arsp->rel_flags & (FLG_REL_GOT | FLG_REL_BSS | in ld_do_activerelocs()
796 DBG_CALL(Dbg_reloc_discard(ofl->ofl_lml, M_MACH, arsp)); in ld_do_activerelocs()
808 if (arsp->rel_flags & FLG_REL_DTLS) in ld_do_activerelocs()
810 else if (arsp->rel_flags & FLG_REL_MTLS) in ld_do_activerelocs()
812 else if (arsp->rel_flags & FLG_REL_STLS) in ld_do_activerelocs()
820 if (arsp->rel_flags & FLG_REL_TLSFIX) { in ld_do_activerelocs()
823 if ((ret = tls_fixups(ofl, arsp)) == FIX_ERROR) in ld_do_activerelocs()
833 if (RELAUX_GET_MOVE(arsp)) in ld_do_activerelocs()
834 ld_adj_movereloc(ofl, arsp); in ld_do_activerelocs()
836 sdp = arsp->rel_sym; in ld_do_activerelocs()
837 refaddr = arsp->rel_roffset + in ld_do_activerelocs()
838 (Off)_elf_getxoff(arsp->rel_isdesc->is_indata); in ld_do_activerelocs()
840 if ((arsp->rel_flags & FLG_REL_CLVAL) || in ld_do_activerelocs()
841 (arsp->rel_flags & FLG_REL_GOTCL)) in ld_do_activerelocs()
852 (sym = ld_am_I_partial(arsp, arsp->rel_raddend))) { in ld_do_activerelocs()
870 arsp->rel_raddend -= sym->sd_osym->st_value; in ld_do_activerelocs()
880 } else if (IS_SIZE(arsp->rel_rtype)) { in ld_do_activerelocs()
901 if ((arsp->rel_flags & FLG_REL_GOT) && in ld_do_activerelocs()
902 !ld_reloc_set_aux_osdesc(ofl, arsp, ofl->ofl_osgot)) in ld_do_activerelocs()
904 osp = RELAUX_GET_OSDESC(arsp); in ld_do_activerelocs()
910 if ((arsp->rel_flags & FLG_REL_LOAD) && in ld_do_activerelocs()
912 refaddr += arsp->rel_isdesc->is_osdesc-> in ld_do_activerelocs()
919 if (IS_PLT(arsp->rel_rtype)) { in ld_do_activerelocs()
932 if ((arsp->rel_flags & FLG_REL_GOT) == 0) in ld_do_activerelocs()
933 value += arsp->rel_raddend; in ld_do_activerelocs()
943 if ((arsp->rel_flags & FLG_REL_GOT) && in ld_do_activerelocs()
958 gnp = ld_find_got_ndx(sdp->sd_GOTndxs, gref, ofl, arsp); in ld_do_activerelocs()
961 if (arsp->rel_rtype == R_AMD64_DTPOFF64) in ld_do_activerelocs()
974 M_MACH, SHT_RELA, arsp, R1addr, value, in ld_do_activerelocs()
986 } else if (IS_GOT_BASED(arsp->rel_rtype) && in ld_do_activerelocs()
990 } else if (IS_GOTPCREL(arsp->rel_rtype) && in ld_do_activerelocs()
998 gnp = ld_find_got_ndx(sdp->sd_GOTndxs, gref, ofl, arsp); in ld_do_activerelocs()
1002 arsp->rel_raddend - refaddr; in ld_do_activerelocs()
1004 } else if (IS_GOT_PC(arsp->rel_rtype) && in ld_do_activerelocs()
1007 sh_addr) - refaddr + arsp->rel_raddend; in ld_do_activerelocs()
1009 } else if ((IS_PC_RELATIVE(arsp->rel_rtype)) && in ld_do_activerelocs()
1014 } else if (IS_TLS_INS(arsp->rel_rtype) && in ld_do_activerelocs()
1015 IS_GOT_RELATIVE(arsp->rel_rtype) && in ld_do_activerelocs()
1019 gnp = ld_find_got_ndx(sdp->sd_GOTndxs, gref, ofl, arsp); in ld_do_activerelocs()
1023 } else if (IS_GOT_RELATIVE(arsp->rel_rtype) && in ld_do_activerelocs()
1027 gnp = ld_find_got_ndx(sdp->sd_GOTndxs, gref, ofl, arsp); in ld_do_activerelocs()
1031 } else if ((arsp->rel_flags & FLG_REL_STLS) && in ld_do_activerelocs()
1047 if (arsp->rel_rtype == R_AMD64_TPOFF32) in ld_do_activerelocs()
1051 if (arsp->rel_isdesc->is_file) in ld_do_activerelocs()
1052 ifl_name = arsp->rel_isdesc->is_file->ifl_name; in ld_do_activerelocs()
1063 if (arsp->rel_isdesc->is_indata->d_buf == 0) { in ld_do_activerelocs()
1067 conv_reloc_amd64_type(arsp->rel_rtype, 0, &inv_buf), in ld_do_activerelocs()
1068 ifl_name, ld_reloc_sym_name(arsp), in ld_do_activerelocs()
1069 EC_WORD(arsp->rel_isdesc->is_scnndx), in ld_do_activerelocs()
1070 arsp->rel_isdesc->is_name); in ld_do_activerelocs()
1077 addr = (uchar_t *)((uintptr_t)arsp->rel_roffset + in ld_do_activerelocs()
1078 (uintptr_t)_elf_getxoff(arsp->rel_isdesc->is_indata)); in ld_do_activerelocs()
1081 M_MACH, SHT_RELA, arsp, EC_NATPTR(addr), value, in ld_do_activerelocs()
1086 ofl->ofl_size) || (arsp->rel_roffset > in ld_do_activerelocs()
1098 conv_reloc_amd64_type(arsp->rel_rtype, 0, &inv_buf), in ld_do_activerelocs()
1099 ifl_name, EC_WORD(arsp->rel_isdesc->is_scnndx), in ld_do_activerelocs()
1100 arsp->rel_isdesc->is_name, ld_reloc_sym_name(arsp), in ld_do_activerelocs()
1126 if (do_reloc_ld(arsp, addr, &value, ld_reloc_sym_name, in ld_do_activerelocs()
1127 ifl_name, OFL_SWAP_RELOC_DATA(ofl, arsp), in ld_do_activerelocs()