Lines Matching refs:ifl

87 	Ifl_desc	*ifl;  in ifl_setup()  local
101 if ((ifl = libld_calloc(1, sizeof (Ifl_desc))) == NULL) in ifl_setup()
103 ifl->ifl_name = name; in ifl_setup()
104 ifl->ifl_ehdr = ehdr; in ifl_setup()
105 ifl->ifl_elf = elf; in ifl_setup()
106 ifl->ifl_flags = flags; in ifl_setup()
129 ifl->ifl_shnum = (Word)shdr0->sh_size; in ifl_setup()
131 ifl->ifl_shstrndx = shdr0->sh_link; in ifl_setup()
133 ifl->ifl_shstrndx = ehdr->e_shstrndx; in ifl_setup()
135 ifl->ifl_shnum = ehdr->e_shnum; in ifl_setup()
136 ifl->ifl_shstrndx = ehdr->e_shstrndx; in ifl_setup()
139 if ((ifl->ifl_isdesc = libld_calloc(ifl->ifl_shnum, in ifl_setup()
147 if (ifl->ifl_ehdr->e_type == ET_DYN) { in ifl_setup()
148 if (aplist_append(&ofl->ofl_sos, ifl, AL_CNT_OFL_LIBS) == NULL) in ifl_setup()
151 if (aplist_append(&ofl->ofl_objs, ifl, AL_CNT_OFL_OBJS) == NULL) in ifl_setup()
155 return (ifl); in ifl_setup()
163 process_section(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_section() argument
176 isp->is_file = ifl; in process_section()
184 ifl->ifl_name); in process_section()
200 ifl->ifl_isdesc[ndx] = isp; in process_section()
205 ifl->ifl_flags |= FLG_IF_ORDERED; in process_section()
238 sf1_cap(Ofl_desc *ofl, Xword val, Ifl_desc *ifl, Is_desc *cisp) in sf1_cap() argument
255 if (ifl && (ifl->ifl_ehdr->e_type == ET_REL)) { in sf1_cap()
263 MSG_INTL(MSG_FIL_INADDR32SF1), ifl->ifl_name, in sf1_cap()
282 ifl->ifl_name, EC_WORD(cisp->is_scnndx), cisp->is_name, in sf1_cap()
288 ifl->ifl_name, EC_WORD(cisp->is_scnndx), cisp->is_name, in sf1_cap()
297 if (ifl->ifl_ehdr->e_type != ET_REL) { in sf1_cap()
312 MSG_INTL(MSG_FIL_EXADDR32SF1), ifl->ifl_name, in sf1_cap()
815 process_cap(Ofl_desc *ofl, Ifl_desc *ifl, Is_desc *cisp) in process_cap() argument
834 DBG_CALL(Dbg_cap_sec_title(ofl->ofl_lml, ifl->ifl_name)); in process_cap()
894 ifl->ifl_name, EC_WORD(cisp->is_scnndx), in process_cap()
906 if ((info == 0) || (info > ifl->ifl_shnum)) { in process_cap()
908 ifl->ifl_name, EC_WORD(cisp->is_scnndx), in process_cap()
912 strs = (char *)ifl->ifl_isdesc[info]->is_indata->d_buf; in process_cap()
946 sf1_cap(ofl, data->c_un.c_val, ifl, cisp); in process_cap()
955 if (ifl->ifl_ehdr->e_type != ET_REL) in process_cap()
1000 if (ifl->ifl_ehdr->e_type != ET_REL) in process_cap()
1011 ifl->ifl_flags |= FLG_IF_OTOSCAP; in process_cap()
1032 ifl->ifl_caps = cdp; in process_cap()
1063 (ifl->ifl_flags & FLG_IF_OTOSCAP)) { in process_cap()
1163 process_capinfo(Ofl_desc *ofl, Ifl_desc *ifl, Is_desc *isp) in process_capinfo() argument
1165 Cap_desc *cdp = ifl->ifl_caps; in process_capinfo()
1191 if ((sdp = ifl->ifl_oldndx[cndx]) == NULL) { in process_capinfo()
1193 MSG_INTL(MSG_CAPINFO_INVALSYM), ifl->ifl_name, in process_capinfo()
1198 if ((lndx == 0) || (lndx >= ifl->ifl_symscnt) || in process_capinfo()
1199 ((lsdp = ifl->ifl_oldndx[lndx]) == NULL) || in process_capinfo()
1202 MSG_INTL(MSG_CAPINFO_INVALLEAD), ifl->ifl_name, in process_capinfo()
1280 process_input(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_input() argument
1283 return (process_section(name, ifl, shdr, scn, ndx, in process_input()
1295 process_reloc(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_reloc() argument
1298 if (process_section(name, ifl, in process_reloc()
1302 if (ifl->ifl_ehdr->e_type == ET_REL) { in process_reloc()
1308 if (aplist_append(&ifl->ifl_relsect, ifl->ifl_isdesc[ndx], in process_reloc()
1320 process_strtab(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_strtab() argument
1346 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_strtab()
1355 isp = ifl->ifl_isdesc[ndx]; in process_strtab()
1361 MSG_INTL(MSG_FIL_MALSTR), ifl->ifl_name, in process_strtab()
1366 ifl->ifl_flags |= FLG_IF_HSTRTAB; in process_strtab()
1375 invalid_section(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in invalid_section() argument
1381 ifl->ifl_name, EC_WORD(ndx), name, in invalid_section()
1382 conv_sec_type(ifl->ifl_ehdr->e_ident[EI_OSABI], in invalid_section()
1383 ifl->ifl_ehdr->e_machine, shdr->sh_type, 0, &inv_buf)); in invalid_section()
1434 process_progbits_alloc(const char *name, Ifl_desc *ifl, Shdr *shdr, in process_progbits_alloc() argument
1528 process_progbits(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_progbits() argument
1577 if (process_progbits_alloc(name, ifl, shdr, ndx, in process_progbits()
1585 r = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_progbits()
1592 ifl->ifl_isdesc[ndx]->is_flags |= is_flags; in process_progbits()
1601 process_debug(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_debug() argument
1610 return (process_progbits(name, ifl, shdr, scn, ndx, ident, ofl)); in process_debug()
1617 process_nobits(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_nobits() argument
1631 return (process_section(name, ifl, shdr, scn, ndx, ident, ofl)); in process_nobits()
1638 process_array(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_array() argument
1646 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_array()
1655 array_process(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in array_process() argument
1682 process_sym_shndx(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_sym_shndx() argument
1685 if (process_input(name, ifl, shdr, scn, ndx, ident, ofl) == S_ERROR) in process_sym_shndx()
1692 Is_desc *isp = ifl->ifl_isdesc[shdr->sh_link]; in process_sym_shndx()
1697 MSG_INTL(MSG_FIL_INVSHLINK), ifl->ifl_name, in process_sym_shndx()
1701 isp->is_symshndx = ifl->ifl_isdesc[ndx]; in process_sym_shndx()
1711 sym_shndx_process(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in sym_shndx_process() argument
1714 Is_desc *isp = ifl->ifl_isdesc[isc->is_shdr->sh_link]; in sym_shndx_process()
1738 process_rel_dynamic(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_rel_dynamic() argument
1755 if ((strscn = elf_getscn(ifl->ifl_elf, shdr->sh_link)) == NULL) { in process_rel_dynamic()
1757 ifl->ifl_name); in process_rel_dynamic()
1798 ifl->ifl_flags |= FLG_IF_GNUVER; in process_rel_dynamic()
2081 process_dynamic_isgnu(const char *name, Ifl_desc *ifl, Shdr *shdr, in process_dynamic_isgnu() argument
2088 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_dynamic_isgnu()
2097 ifl->ifl_flags |= FLG_IF_GNUVER; in process_dynamic_isgnu()
2117 process_dynamic(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in process_dynamic() argument
2125 str = (char *)ifl->ifl_isdesc[isc->is_shdr->sh_link]->is_indata->d_buf; in process_dynamic()
2157 ifl->ifl_soname = soname; in process_dynamic()
2173 needed = expand(ifl->ifl_name, needed, NULL); in process_dynamic()
2179 sdf->sdf_rfile = ifl->ifl_name; in process_dynamic()
2192 ifl->ifl_flags &= ~FLG_IF_LAZYLD; in process_dynamic()
2194 ifl->ifl_flags |= FLG_IF_DISPPEND; in process_dynamic()
2196 ifl->ifl_flags |= FLG_IF_DISPDONE; in process_dynamic()
2198 ifl->ifl_flags |= FLG_IF_NODIRECT; in process_dynamic()
2214 ifl->ifl_flags |= FLG_IF_DEPREQD; in process_dynamic()
2217 (ifl->ifl_flags & FLG_IF_NEEDED)) { in process_dynamic()
2235 ifl->ifl_flags &= ~MSK_IF_POSFLAG1; in process_dynamic()
2243 ifl->ifl_flags |= FLG_IF_RTLDINF; in process_dynamic()
2250 if (ifl->ifl_flags & FLG_IF_NEEDED) { in process_dynamic()
2263 if ((strcmp(ifl->ifl_soname, sifl->ifl_soname) == 0) && in process_dynamic()
2264 (ifl != sifl)) { in process_dynamic()
2274 iflb = strrchr(ifl->ifl_name, '/'); in process_dynamic()
2276 iflb = ifl->ifl_name; in process_dynamic()
2293 ifl->ifl_name, sifl->ifl_soname, hint); in process_dynamic()
2304 (strcmp(ofl->ofl_soname, ifl->ifl_soname) == 0)) { in process_dynamic()
2306 MSG_INTL(MSG_REC_OPTCNFLT), ifl->ifl_name, in process_dynamic()
2307 MSG_INTL(MSG_MARG_SONAME), ifl->ifl_soname); in process_dynamic()
2320 process_progbits_final(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in process_progbits_final() argument
2333 process_group(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_group() argument
2338 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_group()
2346 ifl->ifl_flags |= FLG_IF_GROUPS; in process_group()
2357 rel_process(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in rel_process() argument
2370 ifl->ifl_name, EC_WORD(isc->is_scnndx), isc->is_name, in rel_process()
2371 conv_sec_type(ifl->ifl_ehdr->e_ident[EI_OSABI], in rel_process()
2372 ifl->ifl_ehdr->e_machine, shdr->sh_type, 0, &inv_buf)); in rel_process()
2384 if (rndx >= ifl->ifl_shnum) { in rel_process()
2389 ifl->ifl_name, EC_WORD(isc->is_scnndx), isc->is_name, in rel_process()
2398 } else if ((risc = ifl->ifl_isdesc[rndx]) != NULL) { in rel_process()
2418 MSG_INTL(MSG_FIL_INVRELOC1), ifl->ifl_name, in rel_process()
2434 process_exclude(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_exclude() argument
2454 ifl->ifl_name, EC_WORD(ndx), name); in process_exclude()
2461 return (process_section(name, ifl, shdr, scn, ndx, 0, ofl)); in process_exclude()
2531 process_elf(Ifl_desc *ifl, Elf *elf, Ofl_desc *ofl) in process_elf() argument
2550 path_info = ld_place_path_info_init(ofl, ifl, &path_info_buf); in process_elf()
2556 ld_sup_file(ofl, ifl->ifl_name, elf_kind(elf), ifl->ifl_flags, elf); in process_elf()
2558 sndx = ifl->ifl_shstrndx; in process_elf()
2561 ifl->ifl_name); in process_elf()
2566 ifl->ifl_name); in process_elf()
2572 ifl->ifl_name); in process_elf()
2576 if (ld_sup_input_section(ofl, ifl, name, &shdr, sndx, scn, in process_elf()
2587 ifl->ifl_name); in process_elf()
2591 error = process_strtab(name, ifl, shdr, scn, sndx, FALSE, ofl); in process_elf()
2594 str = ifl->ifl_isdesc[sndx]->is_indata->d_buf; in process_elf()
2600 if (ifl->ifl_ehdr->e_type == ET_DYN) { in process_elf()
2610 DBG_CALL(Dbg_file_generic(ofl->ofl_lml, ifl)); in process_elf()
2625 ifl->ifl_name); in process_elf()
2630 if (ld_sup_input_section(ofl, ifl, name, &shdr, ndx, scn, in process_elf()
2648 if ((error = process_exclude(name, ifl, shdr, scn, in process_elf()
2661 if (Initial[row][column](name, ifl, shdr, scn, in process_elf()
2675 MSG_INTL(MSG_FIL_INVALSEC), ifl->ifl_name, in process_elf()
2677 ifl->ifl_ehdr->e_ident[EI_OSABI], in process_elf()
2678 ifl->ifl_ehdr->e_machine, in process_elf()
2687 if (process_section(name, ifl, shdr, scn, in process_elf()
2692 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2695 capisp = ifl->ifl_isdesc[ndx]; in process_elf()
2698 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2701 capinfoisp = ifl->ifl_isdesc[ndx]; in process_elf()
2705 if (process_debug(name, ifl, shdr, scn, in process_elf()
2710 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2715 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2718 sifisp = ifl->ifl_isdesc[ndx]; in process_elf()
2721 if (process_progbits(name, ifl, shdr, scn, in process_elf()
2726 if (process_progbits(name, ifl, shdr, scn, in process_elf()
2729 ifl->ifl_isdesc[ndx]->is_flags |= FLG_IS_COMDAT; in process_elf()
2732 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2735 vdfisp = ifl->ifl_isdesc[ndx]; in process_elf()
2738 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2741 vndisp = ifl->ifl_isdesc[ndx]; in process_elf()
2744 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2747 vsyisp = ifl->ifl_isdesc[ndx]; in process_elf()
2759 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2782 if (process_section(name, ifl, shdr, in process_elf()
2786 ifl->ifl_isdesc[ndx]->is_flags |= in process_elf()
2793 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2810 if (ifl->ifl_flags & FLG_IF_GROUPS) { in process_elf()
2811 for (ndx = 1; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2814 if (((isp = ifl->ifl_isdesc[ndx]) == NULL) || in process_elf()
2829 ld_comdat_validate(ofl, ifl); in process_elf()
2835 for (ndx = 1; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2838 if (((isp = ifl->ifl_isdesc[ndx]) == NULL) || in process_elf()
2867 if (ifl->ifl_flags & FLG_IF_ORDERED) { in process_elf()
2868 for (ndx = ordndx; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2871 if (((isp = ifl->ifl_isdesc[ndx]) == NULL) || in process_elf()
2878 if (ld_process_ordered(ofl, ifl, path_info, ndx) == in process_elf()
2897 if (column && (ifl->ifl_flags & FLG_IF_NEEDED)) { in process_elf()
2904 if ((base = strrchr(ifl->ifl_name, '/')) == NULL) in process_elf()
2905 base = ifl->ifl_name; in process_elf()
2910 sdf->sdf_file = ifl; in process_elf()
2911 ifl->ifl_sdfdesc = sdf; in process_elf()
2922 if (capisp && (process_cap(ofl, ifl, capisp) == S_ERROR)) in process_elf()
2932 if (ld_vers_need_process(vndisp, ifl, ofl) == S_ERROR) in process_elf()
2940 (void) ld_vers_sym_process(ofl, vsyisp, ifl); in process_elf()
2942 if (ifl->ifl_versym && in process_elf()
2944 if (ld_vers_def_process(vdfisp, ifl, ofl) == S_ERROR) in process_elf()
2951 for (ndx = 0; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2954 if ((isp = ifl->ifl_isdesc[ndx]) == NULL) in process_elf()
2978 if (Final[row][column](isp, ifl, in process_elf()
3007 if (capinfoisp && (ifl->ifl_ehdr->e_type == ET_REL) && in process_elf()
3008 (process_capinfo(ofl, ifl, capinfoisp) == S_ERROR)) in process_elf()
3016 if (sifisp && ((ifl->ifl_flags & (FLG_IF_NEEDED | FLG_IF_NODIRECT)) == in process_elf()
3018 (void) ld_sym_nodirect(sifisp, ifl, ofl); in process_elf()
3067 Ifl_desc *ifl; in ld_process_ifl() local
3216 for (APLIST_TRAVERSE(apl, idx, ifl)) { in ld_process_ifl()
3221 if (ifl->ifl_flags & FLG_IF_NEEDSTR) in ld_process_ifl()
3224 if ((ifl->ifl_stino != status.st_ino) || in ld_process_ifl()
3225 (ifl->ifl_stdev != status.st_dev)) in ld_process_ifl()
3232 ifl->ifl_name, name)); in ld_process_ifl()
3244 (ifl->ifl_flags & FLG_IF_CMDLINE)) { in ld_process_ifl()
3254 (strcmp(name, ifl->ifl_name) == 0) ? in ld_process_ifl()
3258 errmsg, name, ifl->ifl_name); in ld_process_ifl()
3261 *ifl_ret = ifl; in ld_process_ifl()
3270 ifl = ifl_setup(name, ehdr, elf, flags, ofl, rej); in ld_process_ifl()
3271 if ((ifl == NULL) || (ifl == (Ifl_desc *)S_ERROR)) in ld_process_ifl()
3272 return ((uintptr_t)ifl); in ld_process_ifl()
3273 ifl->ifl_stdev = status.st_dev; in ld_process_ifl()
3274 ifl->ifl_stino = status.st_ino; in ld_process_ifl()
3282 ifl->ifl_flags |= FLG_IF_IGNORE; in ld_process_ifl()
3287 error = process_elf(ifl, elf, ofl); in ld_process_ifl()
3306 ifl->ifl_soname = ifl->ifl_name; in ld_process_ifl()
3308 ifl->ifl_soname = soname; in ld_process_ifl()
3316 ifl->ifl_flags |= FLG_IF_DIRECT; in ld_process_ifl()
3318 ifl->ifl_flags |= FLG_IF_LAZYLD; in ld_process_ifl()
3320 ifl->ifl_flags |= FLG_IF_GRPPRM; in ld_process_ifl()
3322 ifl->ifl_flags |= in ld_process_ifl()
3325 error = process_elf(ifl, elf, ofl); in ld_process_ifl()
3330 if (ifl->ifl_flags & MSK_IF_SYMINFO) in ld_process_ifl()
3339 ((ifl->ifl_flags & FLG_IF_RTLDINF) == 0)) { in ld_process_ifl()
3385 *ifl_ret = ifl; in ld_process_ifl()
3442 Ifl_desc *ifl; in ld_process_mem() local
3449 open_ret = ld_process_ifl(path, file, 0, elf, 0, ofl, rej, &ifl); in ld_process_mem()
3452 return (ifl); in ld_process_mem()
3498 Ifl_desc *ifl; in process_req_lib() local
3505 0, rej, &ifl); in process_req_lib()
3510 return (ifl); in process_req_lib()
3542 Ifl_desc *ifl; in ld_finish_libs() local
3555 for (APLIST_TRAVERSE(ofl->ofl_sos, idx2, ifl)) { in ld_finish_libs()
3556 if (!(ifl->ifl_flags & FLG_IF_NEEDSTR) && in ld_finish_libs()
3557 (strcmp(file, ifl->ifl_soname) == 0)) { in ld_finish_libs()
3558 sdf->sdf_file = ifl; in ld_finish_libs()
3586 &fd, ofl, 0, &_rej, &ifl); in ld_finish_libs()
3602 sdf->sdf_file = ifl; in ld_finish_libs()
3613 ifl = process_req_lib(sdf, path, file, ofl, &_rej); in ld_finish_libs()
3614 if (ifl == (Ifl_desc *)S_ERROR) { in ld_finish_libs()
3623 if (ifl) { in ld_finish_libs()
3624 sdf->sdf_file = ifl; in ld_finish_libs()
3652 ifl = process_req_lib(sdf, path, in ld_finish_libs()
3654 if (ifl == (Ifl_desc *)S_ERROR) { in ld_finish_libs()
3663 if (ifl) { in ld_finish_libs()
3664 sdf->sdf_file = ifl; in ld_finish_libs()
3680 ifl = process_req_lib(sdf, path, file, ofl, &rej); in ld_finish_libs()
3681 if (ifl == (Ifl_desc *)S_ERROR) { in ld_finish_libs()
3690 if (ifl) { in ld_finish_libs()
3691 sdf->sdf_file = ifl; in ld_finish_libs()