Lines Matching refs:sdp

55 sym_null(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,  in sym_null()  argument
61 sym_visibility_diag(Error err, Sym_desc *sdp, Sym *osym, Sym *nsym, in sym_visibility_diag() argument
70 ld_eprintf(ofl, err, MSG_INTL(MSG_SYM_CONFVIS), demangle(sdp->sd_name)); in sym_visibility_diag()
72 sdp->sd_file->ifl_name, conv_sym_other(osym->st_other, &inv_obuf), in sym_visibility_diag()
120 sym_visibility(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl) in sym_visibility() argument
122 Sym *osym = sdp->sd_sym; in sym_visibility()
149 if ((sdp->sd_ref == REF_REL_NEED) && in sym_visibility()
151 if ((sdp->sd_sym->st_shndx == SHN_UNDEF) && in sym_visibility()
157 if ((sdp->sd_ref != REF_REL_NEED) && in sym_visibility()
159 if ((sdp->sd_sym->st_shndx != SHN_UNDEF) && in sym_visibility()
187 if (sdp->sd_flags & FLG_SY_MAPFILE) { in sym_visibility()
188 sym_visibility_diag(ERR_WARNING, sdp, osym, in sym_visibility()
191 sym_visibility_diag(ERR_FATAL, sdp, osym, in sym_visibility()
200 if (sdp->sd_flags & FLG_SY_MAPFILE) { in sym_visibility()
201 sym_visibility_diag(ERR_WARNING, sdp, osym, in sym_visibility()
204 sym_visibility_diag(ERR_FATAL, sdp, osym, in sym_visibility()
214 if (sdp->sd_flags & FLG_SY_MAPFILE) { in sym_visibility()
215 sym_visibility_diag(ERR_WARNING, sdp, osym, in sym_visibility()
218 sym_visibility_diag(ERR_FATAL, sdp, osym, in sym_visibility()
234 (sdp->sd_flags & FLG_SY_MAPFILE)) { in sym_visibility()
235 sym_visibility_diag(ERR_WARNING, sdp, osym, nsym, in sym_visibility()
242 (sdp->sd_flags & FLG_SY_MAPFILE)) { in sym_visibility()
243 sym_visibility_diag(ERR_WARNING, sdp, osym, nsym, in sym_visibility()
268 sym_typecheck(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_typecheck() argument
271 uchar_t otype = ELF_ST_TYPE(sdp->sd_sym->st_info); in sym_typecheck()
279 (*ld_targ.t_ms.ms_mach_sym_typecheck)(sdp, nsym, ifl, ofl)) in sym_typecheck()
290 demangle(sdp->sd_name)); in sym_typecheck()
292 sdp->sd_file->ifl_name, in sym_typecheck()
300 sym_mach_check(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_mach_check() argument
307 (void) (*ld_targ.t_ms.ms_mach_sym_typecheck)(sdp, nsym, in sym_mach_check()
316 sym_promote(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_promote() argument
321 sym_typecheck(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_promote()
328 if ((sdp->sd_ref == REF_DYN_SEEN) && in sym_promote()
330 sdp->sd_ref = REF_DYN_NEED; in sym_promote()
339 sdp->sd_aux->sa_rfile = ifl->ifl_name; in sym_promote()
349 sdp->sd_flags |= FLG_SY_GLOBREF; in sym_promote()
358 sym_override(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_override() argument
361 Sym *osym = sdp->sd_sym; in sym_override()
372 (sdp->sd_sym->st_shndx == SHN_UNDEF) && in sym_override()
376 sym_typecheck(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_override()
382 if ((sdp->sd_flags & FLG_SY_SOFOUND) && in sym_override()
389 sdp->sd_flags &= ~FLG_SY_NOTAVAIL; in sym_override()
391 sdp->sd_shndx = nshndx; in sym_override()
392 sdp->sd_flags &= ~FLG_SY_SPECSEC; in sym_override()
393 sdp->sd_flags |= (nsdflags & (FLG_SY_SPECSEC | FLG_SY_TENTSYM)); in sym_override()
401 sdp->sd_flags |= FLG_SY_PROT; in sym_override()
403 sdp->sd_flags &= ~FLG_SY_PROT; in sym_override()
413 sdp->sd_ref = REF_REL_NEED; in sym_override()
435 if ((sdp->sd_flags & FLG_SY_MAPREF) == 0) in sym_override()
436 sdp->sd_aux->sa_rfile = ifl->ifl_name; in sym_override()
444 ((sdp->sd_flags & in sym_override()
446 sdp->sd_flags |= FLG_SY_NDIR; in sym_override()
458 sdp->sd_flags |= FLG_SY_GLOBREF; in sym_override()
460 sdp->sd_flags &= ~FLG_SY_GLOBREF; in sym_override()
462 if (sdp->sd_ref == REF_REL_NEED) in sym_override()
463 sdp->sd_ref = REF_DYN_NEED; in sym_override()
475 sdp->sd_aux->sa_dverndx = vndx; in sym_override()
478 sdp->sd_flags |= FLG_SY_NOTAVAIL; in sym_override()
485 if (!(sdp->sd_aux->sa_vfile)) in sym_override()
486 sdp->sd_aux->sa_vfile = ifl->ifl_name; in sym_override()
490 sdp->sd_flags |= FLG_SY_NOTAVAIL; in sym_override()
497 if ((link = sdp->sd_aux->sa_linkndx) != 0) { in sym_override()
500 _sdp = sdp->sd_file->ifl_oldndx[link]; in sym_override()
502 sdp->sd_aux->sa_linkndx = 0; in sym_override()
504 sdp->sd_file = ifl; in sym_override()
511 ((sdp->sd_isc = ifl->ifl_isdesc[nshndx]) == NULL)) in sym_override()
513 demangle(sdp->sd_name), ifl->ifl_name); in sym_override()
520 sym_twoundefs(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_twoundefs() argument
523 Sym *osym = sdp->sd_sym; in sym_twoundefs()
540 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_twoundefs()
543 sym_typecheck(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_twoundefs()
550 sym_tworeals(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_tworeals() argument
554 Sym *osym = sdp->sd_sym; in sym_tworeals()
559 Half ofile = sdp->sd_file->ifl_ehdr->e_type; in sym_tworeals()
570 demangle(sdp->sd_name)); in sym_tworeals()
572 sdp->sd_file->ifl_name, in sym_tworeals()
584 (*ld_targ.t_ms.ms_mach_sym_typecheck)(sdp, nsym, ifl, ofl)) in sym_tworeals()
592 demangle(sdp->sd_name)); in sym_tworeals()
594 sdp->sd_file->ifl_name, in sym_tworeals()
603 MSG_INTL(MSG_SYM_DIFFATTR), demangle(sdp->sd_name), in sym_tworeals()
604 MSG_INTL(MSG_STR_SIZES), sdp->sd_file->ifl_name, in sym_tworeals()
627 if ((sdp->sd_flags & FLG_SY_SOFOUND) && (nfile == ET_DYN)) { in sym_tworeals()
630 sdp->sd_file->ifl_name); in sym_tworeals()
637 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_tworeals()
642 sdp->sd_file->ifl_name); in sym_tworeals()
643 sym_promote(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_tworeals()
652 sym_realtent(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, in sym_realtent() argument
656 Sym *osym = sdp->sd_sym; in sym_realtent()
662 Half ofile = sdp->sd_file->ifl_ehdr->e_type; in sym_realtent()
685 demangle(sdp->sd_name)); in sym_realtent()
686 sym_promote(sdp, nsym, ifl, ofl, ndx, in sym_realtent()
690 demangle(sdp->sd_name)); in sym_realtent()
693 sdp->sd_file->ifl_name, in sym_realtent()
706 sym_override(sdp, nsym, ifl, ofl, ndx, in sym_realtent()
713 sym_override(sdp, nsym, ifl, ofl, ndx, in sym_realtent()
721 if (sdp->sd_flags & FLG_SY_TENTSYM) in sym_realtent()
732 demangle(sdp->sd_name)); in sym_realtent()
734 sdp->sd_file->ifl_name, in sym_realtent()
753 demangle(sdp->sd_name), MSG_INTL(MSG_STR_SIZES), in sym_realtent()
754 sdp->sd_file->ifl_name, EC_XWORD(osym->st_size), in sym_realtent()
761 demangle(sdp->sd_name), in sym_realtent()
763 sdp->sd_file->ifl_name, in sym_realtent()
799 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_realtent()
803 if ((sdp->sd_flags & FLG_SY_SOFOUND) && (nfile == ET_DYN)) { in sym_realtent()
806 sdp->sd_file->ifl_name); in sym_realtent()
815 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_realtent()
820 sdp->sd_file->ifl_name); in sym_realtent()
821 sym_promote(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags); in sym_realtent()
830 sym_twotent(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, argument
833 Sym *osym = sdp->sd_sym;
836 Half ofile = sdp->sd_file->ifl_ehdr->e_type;
847 if ((sdp->sd_sym->st_shndx == SHN_COMMON) &&
854 } else if ((sdp->sd_sym->st_shndx == SHN_X86_64_LCOMMON) &&
859 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx,
875 ((sdp->sd_flags & FLG_SY_SPECSEC) &&
876 (sdp->sd_sym->st_shndx == SHN_COMMON) &&
881 (sdp->sd_flags & FLG_SY_SPECSEC) &&
882 (sdp->sd_sym->st_shndx == SHN_X86_64_LCOMMON) &&
915 MSG_INTL(MSG_SYM_DIFFATTR), demangle(sdp->sd_name),
917 sdp->sd_file->ifl_name, EC_XWORD(osym->st_value),
934 file = sdp->sd_file->ifl_name;
952 demangle(sdp->sd_name), MSG_INTL(MSG_STR_SIZES),
953 sdp->sd_file->ifl_name, EC_XWORD(osym->st_size),
961 if ((sdp->sd_flags & FLG_SY_SOFOUND) && (nfile == ET_DYN)) {
964 sdp->sd_file->ifl_name);
985 sym_override(sdp, nsym, ifl, ofl, ndx,
988 file = sdp->sd_file->ifl_name;
993 sym_promote(sdp, nsym, ifl, ofl, ndx,
998 sym_override(sdp, nsym, ifl, ofl, ndx,
1002 file = sdp->sd_file->ifl_name;
1005 sym_override(sdp, nsym, ifl, ofl, ndx,
1009 file = sdp->sd_file->ifl_name;
1014 sdp->sd_sym->st_size = (Xword)size;
1027 if ((sdp->sd_flags & FLG_SY_SOFOUND) && (nfile == ET_DYN))
1032 sym_override(sdp, nsym, ifl, ofl, ndx,
1035 sym_promote(sdp, nsym, ifl, ofl, ndx,
1043 sdp->sd_sym->st_value = value;
1082 ld_sym_resolve(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl, int ndx, argument
1086 Sym *osym = sdp->sd_sym;
1087 sd_flag_t osdflags = sdp->sd_flags;
1090 Half oref = sdp->sd_ref;
1097 else if ((sdp->sd_sym->st_shndx == SHN_UNDEF) ||
1098 (sdp->sd_sym->st_shndx == SHN_SUNW_IGNORE))
1118 row = row + (REF_NUM * sdp->sd_ref);
1127 vis = sym_visibility(sdp, nsym, ifl, ofl);
1163 DBG_CALL(Dbg_syms_resolving(ofl, ndx, sdp->sd_name, row, column,
1164 osym, nsym, sdp, ifl));
1175 if (aplist_append(&sdp->sd_aux->sa_dfiles, ifl->ifl_name,
1182 Action[row][column](sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
1192 sdp->sd_flags &= ~MSK_SY_LOCAL;
1195 sdp->sd_flags |= FLG_SY_EXPORT;
1197 sdp->sd_flags |= (FLG_SY_NDIR | FLG_SY_SINGLE);
1199 if (sdp->sd_ref == REF_REL_NEED) {
1205 sdp->sd_flags |= FLG_SY_PROTECT;
1207 sdp->sd_flags |= FLG_SY_HIDDEN;
1209 sdp->sd_flags |= (FLG_SY_HIDDEN | FLG_SY_ELIM);
1212 sdp->sd_sym->st_other =
1213 (sdp->sd_sym->st_other & ~MSK_SYM_VISIBILITY) | vis;
1221 if ((sdp->sd_file == ifl) && (nfile == ET_REL) && (ifl->ifl_versym) &&
1223 ld_vers_promote(sdp, ndx, ifl, ofl);
1233 if ((nfile == ET_REL) && ((sdp->sd_flags &
1246 if ((sdp->sd_flags & (FLG_SY_EXTERN | FLG_SY_PARENT)) ||
1247 ((sdp->sd_sym->st_shndx != SHN_UNDEF) &&
1248 (sdp->sd_ref == REF_REL_NEED)))
1249 sdp->sd_flags |= FLG_SY_MAPUSED;
1256 sdp->sd_flags |= FLG_SY_CAP;
1258 DBG_CALL(Dbg_syms_resolved(ofl, sdp));