Lines Matching refs:arsp
441 tls_fixups(Ofl_desc *ofl, Rel_desc *arsp) in tls_fixups() argument
443 Sym_desc *sdp = arsp->rel_sym; in tls_fixups()
444 Word rtype = arsp->rel_rtype; in tls_fixups()
447 offset = (uchar_t *)((uintptr_t)arsp->rel_roffset + in tls_fixups()
448 (uintptr_t)_elf_getxoff(arsp->rel_isdesc->is_indata) + in tls_fixups()
449 (uintptr_t)RELAUX_GET_OSDESC(arsp)->os_outdata->d_buf); in tls_fixups()
467 R_386_TLS_GOTIE, arsp, ld_reloc_sym_name)); in tls_fixups()
468 arsp->rel_rtype = R_386_TLS_GOTIE; in tls_fixups()
469 arsp->rel_roffset += 5; in tls_fixups()
492 R_386_NONE, arsp, ld_reloc_sym_name)); in tls_fixups()
514 R_386_TLS_LE, arsp, ld_reloc_sym_name)); in tls_fixups()
516 arsp->rel_rtype = R_386_TLS_LE; in tls_fixups()
517 arsp->rel_roffset += 4; in tls_fixups()
534 R_386_NONE, arsp, ld_reloc_sym_name)); in tls_fixups()
539 R_386_NONE, arsp, ld_reloc_sym_name)); in tls_fixups()
560 R_386_NONE, arsp, ld_reloc_sym_name)); in tls_fixups()
588 R_386_TLS_LE, arsp, ld_reloc_sym_name)); in tls_fixups()
589 arsp->rel_rtype = R_386_TLS_LE; in tls_fixups()
618 R_386_TLS_LE, arsp, ld_reloc_sym_name)); in tls_fixups()
619 arsp->rel_rtype = R_386_TLS_LE; in tls_fixups()
645 conv_reloc_386_type(arsp->rel_rtype, 0, &inv_buf), in tls_fixups()
646 arsp->rel_isdesc->is_file->ifl_name, in tls_fixups()
647 ld_reloc_sym_name(arsp), in tls_fixups()
648 arsp->rel_isdesc->is_name, in tls_fixups()
649 EC_OFF(arsp->rel_roffset)); in tls_fixups()
681 arsp->rel_rtype = R_386_TLS_LE; in tls_fixups()
711 conv_reloc_386_type(arsp->rel_rtype, 0, &inv_buf), in tls_fixups()
712 arsp->rel_isdesc->is_file->ifl_name, in tls_fixups()
713 ld_reloc_sym_name(arsp), in tls_fixups()
714 arsp->rel_isdesc->is_name, in tls_fixups()
715 EC_OFF(arsp->rel_roffset)); in tls_fixups()
725 Rel_desc *arsp; in ld_do_activerelocs() local
737 REL_CACHE_TRAVERSE(&ofl->ofl_actrels, idx, rcbp, arsp) { in ld_do_activerelocs()
751 if ((arsp->rel_isdesc->is_flags & FLG_IS_DISCARD) && in ld_do_activerelocs()
752 ((arsp->rel_flags & (FLG_REL_GOT | FLG_REL_BSS | in ld_do_activerelocs()
754 DBG_CALL(Dbg_reloc_discard(ofl->ofl_lml, M_MACH, arsp)); in ld_do_activerelocs()
766 if (arsp->rel_flags & FLG_REL_DTLS) in ld_do_activerelocs()
768 else if (arsp->rel_flags & FLG_REL_MTLS) in ld_do_activerelocs()
770 else if (arsp->rel_flags & FLG_REL_STLS) in ld_do_activerelocs()
778 if (arsp->rel_flags & FLG_REL_TLSFIX) { in ld_do_activerelocs()
781 if ((ret = tls_fixups(ofl, arsp)) == FIX_ERROR) in ld_do_activerelocs()
791 if (RELAUX_GET_MOVE(arsp)) in ld_do_activerelocs()
792 ld_adj_movereloc(ofl, arsp); in ld_do_activerelocs()
794 sdp = arsp->rel_sym; in ld_do_activerelocs()
795 refaddr = arsp->rel_roffset + in ld_do_activerelocs()
796 (Off)_elf_getxoff(arsp->rel_isdesc->is_indata); in ld_do_activerelocs()
798 if (arsp->rel_flags & FLG_REL_CLVAL) in ld_do_activerelocs()
809 arsp->rel_isdesc->is_indata->d_buf + in ld_do_activerelocs()
810 arsp->rel_roffset; in ld_do_activerelocs()
818 if (ld_reloc_targval_get(ofl, arsp, raddr, in ld_do_activerelocs()
821 sym = ld_am_I_partial(arsp, radd); in ld_do_activerelocs()
847 arsp, raddr, radd) == 0) in ld_do_activerelocs()
861 } else if (IS_SIZE(arsp->rel_rtype)) { in ld_do_activerelocs()
883 if ((arsp->rel_flags & FLG_REL_GOT) && in ld_do_activerelocs()
884 !ld_reloc_set_aux_osdesc(ofl, arsp, ofl->ofl_osgot)) in ld_do_activerelocs()
886 osp = RELAUX_GET_OSDESC(arsp); in ld_do_activerelocs()
892 if ((arsp->rel_flags & FLG_REL_LOAD) && in ld_do_activerelocs()
895 arsp->rel_isdesc->is_osdesc->os_shdr->sh_addr; in ld_do_activerelocs()
901 if (IS_PLT(arsp->rel_rtype)) { in ld_do_activerelocs()
914 if ((arsp->rel_flags & FLG_REL_GOT) && in ld_do_activerelocs()
932 if (arsp->rel_rtype == R_386_TLS_DTPOFF32) in ld_do_activerelocs()
945 M_MACH, SHT_REL, arsp, R1addr, value, in ld_do_activerelocs()
957 } else if (IS_GOT_BASED(arsp->rel_rtype) && in ld_do_activerelocs()
961 } else if (IS_GOT_PC(arsp->rel_rtype) && in ld_do_activerelocs()
966 } else if ((IS_PC_RELATIVE(arsp->rel_rtype)) && in ld_do_activerelocs()
971 } else if (IS_TLS_INS(arsp->rel_rtype) && in ld_do_activerelocs()
972 IS_GOT_RELATIVE(arsp->rel_rtype) && in ld_do_activerelocs()
979 if (arsp->rel_rtype == R_386_TLS_IE) { in ld_do_activerelocs()
983 } else if (IS_GOT_RELATIVE(arsp->rel_rtype) && in ld_do_activerelocs()
992 } else if ((arsp->rel_flags & FLG_REL_STLS) && in ld_do_activerelocs()
1009 if ((arsp->rel_rtype == R_386_TLS_LDO_32) || in ld_do_activerelocs()
1010 (arsp->rel_rtype == R_386_TLS_LE)) in ld_do_activerelocs()
1014 if (arsp->rel_isdesc->is_file) in ld_do_activerelocs()
1015 ifl_name = arsp->rel_isdesc->is_file->ifl_name; in ld_do_activerelocs()
1026 if (arsp->rel_isdesc->is_indata->d_buf == 0) { in ld_do_activerelocs()
1030 conv_reloc_386_type(arsp->rel_rtype, 0, &inv_buf), in ld_do_activerelocs()
1031 ifl_name, ld_reloc_sym_name(arsp), in ld_do_activerelocs()
1032 EC_WORD(arsp->rel_isdesc->is_scnndx), in ld_do_activerelocs()
1033 arsp->rel_isdesc->is_name); in ld_do_activerelocs()
1040 addr = (uchar_t *)((uintptr_t)arsp->rel_roffset + in ld_do_activerelocs()
1041 (uintptr_t)_elf_getxoff(arsp->rel_isdesc->is_indata)); in ld_do_activerelocs()
1044 M_MACH, SHT_REL, arsp, EC_NATPTR(addr), value, in ld_do_activerelocs()
1049 ofl->ofl_size) || (arsp->rel_roffset > in ld_do_activerelocs()
1061 conv_reloc_386_type(arsp->rel_rtype, 0, &inv_buf), in ld_do_activerelocs()
1062 ifl_name, EC_WORD(arsp->rel_isdesc->is_scnndx), in ld_do_activerelocs()
1063 arsp->rel_isdesc->is_name, ld_reloc_sym_name(arsp), in ld_do_activerelocs()
1084 if (arsp->rel_flags & FLG_REL_NADDEND) { in ld_do_activerelocs()
1085 Xword addend = arsp->rel_raddend; in ld_do_activerelocs()
1087 if (ld_reloc_targval_set(ofl, arsp, addr, addend) == 0) in ld_do_activerelocs()
1095 if (do_reloc_ld(arsp, addr, &value, ld_reloc_sym_name, in ld_do_activerelocs()
1096 ifl_name, OFL_SWAP_RELOC_DATA(ofl, arsp), in ld_do_activerelocs()