Lines Matching refs:sdp
55 sym_null(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
61 sym_visibility_diag(Error err, Sym_desc *sdp, Sym *osym, Sym *nsym,
70 ld_eprintf(ofl, err, MSG_INTL(MSG_SYM_CONFVIS), demangle(sdp->sd_name));
72 sdp->sd_file->ifl_name, conv_sym_other(osym->st_other, &inv_obuf),
120 sym_visibility(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl)
122 Sym *osym = sdp->sd_sym;
149 if ((sdp->sd_ref == REF_REL_NEED) &&
151 if ((sdp->sd_sym->st_shndx == SHN_UNDEF) &&
157 if ((sdp->sd_ref != REF_REL_NEED) &&
159 if ((sdp->sd_sym->st_shndx != SHN_UNDEF) &&
187 if (sdp->sd_flags & FLG_SY_MAPFILE) {
188 sym_visibility_diag(ERR_WARNING, sdp, osym,
191 sym_visibility_diag(ERR_FATAL, sdp, osym,
200 if (sdp->sd_flags & FLG_SY_MAPFILE) {
201 sym_visibility_diag(ERR_WARNING, sdp, osym,
204 sym_visibility_diag(ERR_FATAL, sdp, osym,
214 if (sdp->sd_flags & FLG_SY_MAPFILE) {
215 sym_visibility_diag(ERR_WARNING, sdp, osym,
218 sym_visibility_diag(ERR_FATAL, sdp, osym,
234 (sdp->sd_flags & FLG_SY_MAPFILE)) {
235 sym_visibility_diag(ERR_WARNING, sdp, osym, nsym,
242 (sdp->sd_flags & FLG_SY_MAPFILE)) {
243 sym_visibility_diag(ERR_WARNING, sdp, osym, nsym,
268 sym_typecheck(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
271 uchar_t otype = ELF_ST_TYPE(sdp->sd_sym->st_info);
279 (*ld_targ.t_ms.ms_mach_sym_typecheck)(sdp, nsym, ifl, ofl))
290 demangle(sdp->sd_name));
292 sdp->sd_file->ifl_name,
300 sym_mach_check(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
307 (void) (*ld_targ.t_ms.ms_mach_sym_typecheck)(sdp, nsym,
316 sym_promote(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
321 sym_typecheck(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
328 if ((sdp->sd_ref == REF_DYN_SEEN) &&
330 sdp->sd_ref = REF_DYN_NEED;
339 sdp->sd_aux->sa_rfile = ifl->ifl_name;
349 sdp->sd_flags |= FLG_SY_GLOBREF;
358 sym_override(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
361 Sym *osym = sdp->sd_sym;
372 (sdp->sd_sym->st_shndx == SHN_UNDEF) &&
376 sym_typecheck(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
382 if ((sdp->sd_flags & FLG_SY_SOFOUND) &&
389 sdp->sd_flags &= ~FLG_SY_NOTAVAIL;
391 sdp->sd_shndx = nshndx;
392 sdp->sd_flags &= ~FLG_SY_SPECSEC;
393 sdp->sd_flags |= (nsdflags & (FLG_SY_SPECSEC | FLG_SY_TENTSYM));
401 sdp->sd_flags |= FLG_SY_PROT;
403 sdp->sd_flags &= ~FLG_SY_PROT;
413 sdp->sd_ref = REF_REL_NEED;
435 if ((sdp->sd_flags & FLG_SY_MAPREF) == 0)
436 sdp->sd_aux->sa_rfile = ifl->ifl_name;
444 ((sdp->sd_flags &
446 sdp->sd_flags |= FLG_SY_NDIR;
458 sdp->sd_flags |= FLG_SY_GLOBREF;
460 sdp->sd_flags &= ~FLG_SY_GLOBREF;
462 if (sdp->sd_ref == REF_REL_NEED)
463 sdp->sd_ref = REF_DYN_NEED;
475 sdp->sd_aux->sa_dverndx = vndx;
478 sdp->sd_flags |= FLG_SY_NOTAVAIL;
485 if (!(sdp->sd_aux->sa_vfile))
486 sdp->sd_aux->sa_vfile = ifl->ifl_name;
490 sdp->sd_flags |= FLG_SY_NOTAVAIL;
497 if ((link = sdp->sd_aux->sa_linkndx) != 0) {
500 _sdp = sdp->sd_file->ifl_oldndx[link];
502 sdp->sd_aux->sa_linkndx = 0;
504 sdp->sd_file = ifl;
511 ((sdp->sd_isc = ifl->ifl_isdesc[nshndx]) == NULL))
513 demangle(sdp->sd_name), ifl->ifl_name);
520 sym_twoundefs(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
523 Sym *osym = sdp->sd_sym;
540 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
543 sym_typecheck(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
550 sym_tworeals(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
554 Sym *osym = sdp->sd_sym;
559 Half ofile = sdp->sd_file->ifl_ehdr->e_type;
570 demangle(sdp->sd_name));
572 sdp->sd_file->ifl_name,
584 (*ld_targ.t_ms.ms_mach_sym_typecheck)(sdp, nsym, ifl, ofl))
592 demangle(sdp->sd_name));
594 sdp->sd_file->ifl_name,
603 MSG_INTL(MSG_SYM_DIFFATTR), demangle(sdp->sd_name),
604 MSG_INTL(MSG_STR_SIZES), sdp->sd_file->ifl_name,
627 if ((sdp->sd_flags & FLG_SY_SOFOUND) && (nfile == ET_DYN)) {
630 sdp->sd_file->ifl_name);
637 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
642 sdp->sd_file->ifl_name);
643 sym_promote(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
652 sym_realtent(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
656 Sym *osym = sdp->sd_sym;
662 Half ofile = sdp->sd_file->ifl_ehdr->e_type;
685 demangle(sdp->sd_name));
686 sym_promote(sdp, nsym, ifl, ofl, ndx,
690 demangle(sdp->sd_name));
693 sdp->sd_file->ifl_name,
706 sym_override(sdp, nsym, ifl, ofl, ndx,
713 sym_override(sdp, nsym, ifl, ofl, ndx,
721 if (sdp->sd_flags & FLG_SY_TENTSYM)
732 demangle(sdp->sd_name));
734 sdp->sd_file->ifl_name,
753 demangle(sdp->sd_name), MSG_INTL(MSG_STR_SIZES),
754 sdp->sd_file->ifl_name, EC_XWORD(osym->st_size),
761 demangle(sdp->sd_name),
763 sdp->sd_file->ifl_name,
799 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
803 if ((sdp->sd_flags & FLG_SY_SOFOUND) && (nfile == ET_DYN)) {
806 sdp->sd_file->ifl_name);
815 sym_override(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
820 sdp->sd_file->ifl_name);
821 sym_promote(sdp, nsym, ifl, ofl, ndx, nshndx, nsdflags);
830 sym_twotent(Sym_desc *sdp, Sym *nsym, Ifl_desc *ifl, Ofl_desc *ofl,
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,
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));