usr/src/cmd/sgs/libld/common/relocate.c
changeset 12449 a87750d92895
parent 12155 50d9d4aeb501
child 12498 12c4df7d2890
equal deleted inserted replaced
12448:f60856ebe541 12449:a87750d92895
   970 		Word	ortype = rsp->rel_rtype;
   970 		Word	ortype = rsp->rel_rtype;
   971 
   971 
   972 		(*ld_targ.t_mr.mr_assign_plt_ndx)(sdp, ofl);
   972 		(*ld_targ.t_mr.mr_assign_plt_ndx)(sdp, ofl);
   973 
   973 
   974 		/*
   974 		/*
   975 		 * If this symbol is binding to a LAZYLOADED object then
   975 		 * If this symbol is binding to a lazy loadable, or deferred
   976 		 * set the LAZYLD symbol flag.
   976 		 * dependency, then identify the symbol.
   977 		 */
   977 		 */
   978 		if (sdp->sd_file &&
   978 		if (sdp->sd_file) {
   979 		    (sdp->sd_file->ifl_flags & FLG_IF_LAZYLD))
   979 			if (sdp->sd_file->ifl_flags & FLG_IF_LAZYLD)
   980 			sdp->sd_flags |= FLG_SY_LAZYLD;
   980 				sdp->sd_flags |= FLG_SY_LAZYLD;
       
   981 			if (sdp->sd_file->ifl_flags & FLG_IF_DEFERRED)
       
   982 				sdp->sd_flags |= FLG_SY_DEFERRED;
       
   983 		}
   981 
   984 
   982 		rsp->rel_rtype = ld_targ.t_m.m_r_jmp_slot;
   985 		rsp->rel_rtype = ld_targ.t_m.m_r_jmp_slot;
   983 		if ((*ld_targ.t_mr.mr_add_outrel)(FLG_REL_PLT, rsp, ofl) ==
   986 		if ((*ld_targ.t_mr.mr_add_outrel)(FLG_REL_PLT, rsp, ofl) ==
   984 		    S_ERROR)
   987 		    S_ERROR)
   985 			return (S_ERROR);
   988 			return (S_ERROR);