Lines Matching refs:ifl

88 	Ifl_desc	*ifl;  in ifl_setup()  local
102 if ((ifl = libld_calloc(1, sizeof (Ifl_desc))) == NULL) in ifl_setup()
104 ifl->ifl_name = name; in ifl_setup()
105 ifl->ifl_ehdr = ehdr; in ifl_setup()
106 ifl->ifl_elf = elf; in ifl_setup()
107 ifl->ifl_flags = flags; in ifl_setup()
130 ifl->ifl_shnum = (Word)shdr0->sh_size; in ifl_setup()
132 ifl->ifl_shstrndx = shdr0->sh_link; in ifl_setup()
134 ifl->ifl_shstrndx = ehdr->e_shstrndx; in ifl_setup()
136 ifl->ifl_shnum = ehdr->e_shnum; in ifl_setup()
137 ifl->ifl_shstrndx = ehdr->e_shstrndx; in ifl_setup()
140 if ((ifl->ifl_isdesc = libld_calloc(ifl->ifl_shnum, in ifl_setup()
148 if (ifl->ifl_ehdr->e_type == ET_DYN) { in ifl_setup()
149 if (aplist_append(&ofl->ofl_sos, ifl, AL_CNT_OFL_LIBS) == NULL) in ifl_setup()
152 if (aplist_append(&ofl->ofl_objs, ifl, AL_CNT_OFL_OBJS) == NULL) in ifl_setup()
156 return (ifl); in ifl_setup()
182 process_section(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_section() argument
195 isp->is_file = ifl; in process_section()
203 ifl->ifl_name); in process_section()
217 ifl->ifl_isdesc[ndx] = isp; in process_section()
222 ifl->ifl_flags |= FLG_IF_ORDERED; in process_section()
255 sf1_cap(Ofl_desc *ofl, Xword val, Ifl_desc *ifl, Is_desc *cisp) in sf1_cap() argument
272 if (ifl && (ifl->ifl_ehdr->e_type == ET_REL)) { in sf1_cap()
280 MSG_INTL(MSG_FIL_INADDR32SF1), ifl->ifl_name, in sf1_cap()
299 ifl->ifl_name, EC_WORD(cisp->is_scnndx), cisp->is_name, in sf1_cap()
305 ifl->ifl_name, EC_WORD(cisp->is_scnndx), cisp->is_name, in sf1_cap()
314 if (ifl->ifl_ehdr->e_type != ET_REL) { in sf1_cap()
329 MSG_INTL(MSG_FIL_EXADDR32SF1), ifl->ifl_name, in sf1_cap()
846 process_cap(Ofl_desc *ofl, Ifl_desc *ifl, Is_desc *cisp) in process_cap() argument
865 DBG_CALL(Dbg_cap_sec_title(ofl->ofl_lml, ifl->ifl_name)); in process_cap()
926 ifl->ifl_name, EC_WORD(cisp->is_scnndx), in process_cap()
938 if ((info == 0) || (info > ifl->ifl_shnum)) { in process_cap()
940 ifl->ifl_name, EC_WORD(cisp->is_scnndx), in process_cap()
944 strs = (char *)ifl->ifl_isdesc[info]->is_indata->d_buf; in process_cap()
978 sf1_cap(ofl, data->c_un.c_val, ifl, cisp); in process_cap()
987 if (ifl->ifl_ehdr->e_type != ET_REL) in process_cap()
1032 if (ifl->ifl_ehdr->e_type != ET_REL) in process_cap()
1043 ifl->ifl_flags |= FLG_IF_OTOSCAP; in process_cap()
1064 ifl->ifl_caps = cdp; in process_cap()
1095 (ifl->ifl_flags & FLG_IF_OTOSCAP)) { in process_cap()
1203 process_capinfo(Ofl_desc *ofl, Ifl_desc *ifl, Is_desc *isp) in process_capinfo() argument
1205 Cap_desc *cdp = ifl->ifl_caps; in process_capinfo()
1231 if ((sdp = ifl->ifl_oldndx[cndx]) == NULL) { in process_capinfo()
1233 MSG_INTL(MSG_CAPINFO_INVALSYM), ifl->ifl_name, in process_capinfo()
1238 if ((lndx == 0) || (lndx >= ifl->ifl_symscnt) || in process_capinfo()
1239 ((lsdp = ifl->ifl_oldndx[lndx]) == NULL) || in process_capinfo()
1242 MSG_INTL(MSG_CAPINFO_INVALLEAD), ifl->ifl_name, in process_capinfo()
1320 process_input(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_input() argument
1323 return (process_section(name, ifl, shdr, scn, ndx, in process_input()
1335 process_reloc(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_reloc() argument
1338 if (process_section(name, ifl, in process_reloc()
1342 if (ifl->ifl_ehdr->e_type == ET_REL) { in process_reloc()
1348 if (aplist_append(&ifl->ifl_relsect, ifl->ifl_isdesc[ndx], in process_reloc()
1360 process_strtab(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_strtab() argument
1386 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_strtab()
1395 isp = ifl->ifl_isdesc[ndx]; in process_strtab()
1401 MSG_INTL(MSG_FIL_MALSTR), ifl->ifl_name, in process_strtab()
1406 ifl->ifl_flags |= FLG_IF_HSTRTAB; in process_strtab()
1415 invalid_section(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in invalid_section() argument
1421 ifl->ifl_name, EC_WORD(ndx), name, in invalid_section()
1422 conv_sec_type(ifl->ifl_ehdr->e_ident[EI_OSABI], in invalid_section()
1423 ifl->ifl_ehdr->e_machine, shdr->sh_type, CONV_FMT_ALT_CF, in invalid_section()
1475 process_progbits_alloc(const char *name, Ifl_desc *ifl, Shdr *shdr, in process_progbits_alloc() argument
1569 process_progbits(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_progbits() argument
1618 if (process_progbits_alloc(name, ifl, shdr, ndx, in process_progbits()
1626 r = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_progbits()
1633 ifl->ifl_isdesc[ndx]->is_flags |= is_flags; in process_progbits()
1642 process_debug(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_debug() argument
1651 return (process_progbits(name, ifl, shdr, scn, ndx, ident, ofl)); in process_debug()
1658 process_nobits(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_nobits() argument
1672 return (process_section(name, ifl, shdr, scn, ndx, ident, ofl)); in process_nobits()
1679 process_array(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_array() argument
1687 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_array()
1696 array_process(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in array_process() argument
1723 process_sym_shndx(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_sym_shndx() argument
1726 if (process_input(name, ifl, shdr, scn, ndx, ident, ofl) == S_ERROR) in process_sym_shndx()
1733 Is_desc *isp = ifl->ifl_isdesc[shdr->sh_link]; in process_sym_shndx()
1738 MSG_INTL(MSG_FIL_INVSHLINK), ifl->ifl_name, in process_sym_shndx()
1742 isp->is_symshndx = ifl->ifl_isdesc[ndx]; in process_sym_shndx()
1752 sym_shndx_process(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in sym_shndx_process() argument
1755 Is_desc *isp = ifl->ifl_isdesc[isc->is_shdr->sh_link]; in sym_shndx_process()
1779 process_rel_dynamic(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_rel_dynamic() argument
1796 if ((strscn = elf_getscn(ifl->ifl_elf, shdr->sh_link)) == NULL) { in process_rel_dynamic()
1798 ifl->ifl_name); in process_rel_dynamic()
1839 ifl->ifl_flags |= FLG_IF_GNUVER; in process_rel_dynamic()
2122 process_dynamic_isgnu(const char *name, Ifl_desc *ifl, Shdr *shdr, in process_dynamic_isgnu() argument
2129 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_dynamic_isgnu()
2138 ifl->ifl_flags |= FLG_IF_GNUVER; in process_dynamic_isgnu()
2158 process_dynamic(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in process_dynamic() argument
2166 str = (char *)ifl->ifl_isdesc[isc->is_shdr->sh_link]->is_indata->d_buf; in process_dynamic()
2198 ifl->ifl_soname = soname; in process_dynamic()
2214 needed = expand(ifl->ifl_name, needed, NULL); in process_dynamic()
2220 sdf->sdf_rfile = ifl->ifl_name; in process_dynamic()
2233 ifl->ifl_flags &= ~FLG_IF_LAZYLD; in process_dynamic()
2235 ifl->ifl_flags |= FLG_IF_DISPPEND; in process_dynamic()
2237 ifl->ifl_flags |= FLG_IF_DISPDONE; in process_dynamic()
2239 ifl->ifl_flags |= FLG_IF_NODIRECT; in process_dynamic()
2255 ifl->ifl_flags |= FLG_IF_DEPREQD; in process_dynamic()
2258 (ifl->ifl_flags & FLG_IF_NEEDED)) { in process_dynamic()
2276 ifl->ifl_flags &= ~MSK_IF_POSFLAG1; in process_dynamic()
2284 ifl->ifl_flags |= FLG_IF_RTLDINF; in process_dynamic()
2291 if (ifl->ifl_flags & FLG_IF_NEEDED) { in process_dynamic()
2304 if ((strcmp(ifl->ifl_soname, sifl->ifl_soname) == 0) && in process_dynamic()
2305 (ifl != sifl)) { in process_dynamic()
2315 iflb = strrchr(ifl->ifl_name, '/'); in process_dynamic()
2317 iflb = ifl->ifl_name; in process_dynamic()
2334 ifl->ifl_name, sifl->ifl_soname, hint); in process_dynamic()
2345 (strcmp(ofl->ofl_soname, ifl->ifl_soname) == 0)) { in process_dynamic()
2347 MSG_INTL(MSG_REC_OPTCNFLT), ifl->ifl_name, in process_dynamic()
2348 MSG_INTL(MSG_MARG_SONAME), ifl->ifl_soname); in process_dynamic()
2361 process_progbits_final(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in process_progbits_final() argument
2374 process_group(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_group() argument
2379 error = process_section(name, ifl, shdr, scn, ndx, ident, ofl); in process_group()
2387 ifl->ifl_flags |= FLG_IF_GROUPS; in process_group()
2398 rel_process(Is_desc *isc, Ifl_desc *ifl, Ofl_desc *ofl) in rel_process() argument
2411 ifl->ifl_name, EC_WORD(isc->is_scnndx), isc->is_name, in rel_process()
2412 conv_sec_type(ifl->ifl_ehdr->e_ident[EI_OSABI], in rel_process()
2413 ifl->ifl_ehdr->e_machine, shdr->sh_type, CONV_FMT_ALT_CF, in rel_process()
2426 if (rndx >= ifl->ifl_shnum) { in rel_process()
2431 ifl->ifl_name, EC_WORD(isc->is_scnndx), isc->is_name, in rel_process()
2440 } else if ((risc = ifl->ifl_isdesc[rndx]) != NULL) { in rel_process()
2460 MSG_INTL(MSG_FIL_INVRELOC1), ifl->ifl_name, in rel_process()
2476 process_exclude(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn, in process_exclude() argument
2496 ifl->ifl_name, EC_WORD(ndx), name); in process_exclude()
2503 return (process_section(name, ifl, shdr, scn, ndx, 0, ofl)); in process_exclude()
2573 process_elf(Ifl_desc *ifl, Elf *elf, Ofl_desc *ofl) in process_elf() argument
2592 path_info = ld_place_path_info_init(ofl, ifl, &path_info_buf); in process_elf()
2598 ld_sup_file(ofl, ifl->ifl_name, elf_kind(elf), ifl->ifl_flags, elf); in process_elf()
2600 sndx = ifl->ifl_shstrndx; in process_elf()
2603 ifl->ifl_name); in process_elf()
2608 ifl->ifl_name); in process_elf()
2614 ifl->ifl_name); in process_elf()
2618 if (ld_sup_input_section(ofl, ifl, name, &shdr, sndx, scn, in process_elf()
2629 ifl->ifl_name); in process_elf()
2633 error = process_strtab(name, ifl, shdr, scn, sndx, FALSE, ofl); in process_elf()
2636 str = ifl->ifl_isdesc[sndx]->is_indata->d_buf; in process_elf()
2642 if (ifl->ifl_ehdr->e_type == ET_DYN) { in process_elf()
2652 DBG_CALL(Dbg_file_generic(ofl->ofl_lml, ifl)); in process_elf()
2667 ifl->ifl_name); in process_elf()
2672 if (ld_sup_input_section(ofl, ifl, name, &shdr, ndx, scn, in process_elf()
2685 if ((error = process_exclude(name, ifl, shdr, scn, in process_elf()
2698 if (Initial[row][column](name, ifl, shdr, scn, in process_elf()
2717 MSG_INTL(MSG_FIL_INVALSEC), ifl->ifl_name, in process_elf()
2719 ifl->ifl_ehdr->e_ident[EI_OSABI], in process_elf()
2720 ifl->ifl_ehdr->e_machine, in process_elf()
2729 if (process_section(name, ifl, shdr, scn, in process_elf()
2734 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2737 capisp = ifl->ifl_isdesc[ndx]; in process_elf()
2740 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2743 capinfoisp = ifl->ifl_isdesc[ndx]; in process_elf()
2747 if (process_debug(name, ifl, shdr, scn, in process_elf()
2752 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2757 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2760 sifisp = ifl->ifl_isdesc[ndx]; in process_elf()
2763 if (process_progbits(name, ifl, shdr, scn, in process_elf()
2768 if (process_progbits(name, ifl, shdr, scn, in process_elf()
2771 ifl->ifl_isdesc[ndx]->is_flags |= FLG_IS_COMDAT; in process_elf()
2774 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2777 vdfisp = ifl->ifl_isdesc[ndx]; in process_elf()
2780 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2783 vndisp = ifl->ifl_isdesc[ndx]; in process_elf()
2786 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2789 vsyisp = ifl->ifl_isdesc[ndx]; in process_elf()
2801 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2824 if (process_section(name, ifl, shdr, in process_elf()
2828 ifl->ifl_isdesc[ndx]->is_flags |= in process_elf()
2835 if (process_section(name, ifl, shdr, scn, ndx, in process_elf()
2852 if (ifl->ifl_flags & FLG_IF_GROUPS) { in process_elf()
2853 for (ndx = 1; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2856 if (((isp = ifl->ifl_isdesc[ndx]) == NULL) || in process_elf()
2871 ld_comdat_validate(ofl, ifl); in process_elf()
2877 for (ndx = 1; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2880 if (((isp = ifl->ifl_isdesc[ndx]) == NULL) || in process_elf()
2909 if (ifl->ifl_flags & FLG_IF_ORDERED) { in process_elf()
2910 for (ndx = ordndx; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2913 if (((isp = ifl->ifl_isdesc[ndx]) == NULL) || in process_elf()
2920 if (ld_process_ordered(ofl, ifl, path_info, ndx) == in process_elf()
2939 if (column && (ifl->ifl_flags & FLG_IF_NEEDED)) { in process_elf()
2946 if ((base = strrchr(ifl->ifl_name, '/')) == NULL) in process_elf()
2947 base = ifl->ifl_name; in process_elf()
2952 sdf->sdf_file = ifl; in process_elf()
2953 ifl->ifl_sdfdesc = sdf; in process_elf()
2964 if (capisp && (process_cap(ofl, ifl, capisp) == S_ERROR)) in process_elf()
2974 if (ld_vers_need_process(vndisp, ifl, ofl) == S_ERROR) in process_elf()
2982 (void) ld_vers_sym_process(ofl, vsyisp, ifl); in process_elf()
2984 if (ifl->ifl_versym && in process_elf()
2986 if (ld_vers_def_process(vdfisp, ifl, ofl) == S_ERROR) in process_elf()
2993 for (ndx = 0; ndx < ifl->ifl_shnum; ndx++) { in process_elf()
2996 if ((isp = ifl->ifl_isdesc[ndx]) == NULL) in process_elf()
3020 if (Final[row][column](isp, ifl, in process_elf()
3049 if (capinfoisp && (ifl->ifl_ehdr->e_type == ET_REL) && in process_elf()
3050 (process_capinfo(ofl, ifl, capinfoisp) == S_ERROR)) in process_elf()
3058 if (sifisp && ((ifl->ifl_flags & (FLG_IF_NEEDED | FLG_IF_NODIRECT)) == in process_elf()
3060 (void) ld_sym_nodirect(sifisp, ifl, ofl); in process_elf()
3109 Ifl_desc *ifl; in ld_process_ifl() local
3273 for (APLIST_TRAVERSE(apl, idx, ifl)) { in ld_process_ifl()
3278 if (ifl->ifl_flags & FLG_IF_NEEDSTR) in ld_process_ifl()
3281 if ((ifl->ifl_stino != status.st_ino) || in ld_process_ifl()
3282 (ifl->ifl_stdev != status.st_dev)) in ld_process_ifl()
3289 ifl->ifl_name, name)); in ld_process_ifl()
3301 (ifl->ifl_flags & FLG_IF_CMDLINE)) { in ld_process_ifl()
3311 (strcmp(name, ifl->ifl_name) == 0) ? in ld_process_ifl()
3315 errmsg, name, ifl->ifl_name); in ld_process_ifl()
3318 *ifl_ret = ifl; in ld_process_ifl()
3327 ifl = ifl_setup(name, ehdr, elf, flags, ofl, rej); in ld_process_ifl()
3328 if ((ifl == NULL) || (ifl == (Ifl_desc *)S_ERROR)) in ld_process_ifl()
3329 return ((uintptr_t)ifl); in ld_process_ifl()
3330 ifl->ifl_stdev = status.st_dev; in ld_process_ifl()
3331 ifl->ifl_stino = status.st_ino; in ld_process_ifl()
3339 ifl->ifl_flags |= FLG_IF_IGNORE; in ld_process_ifl()
3344 error = process_elf(ifl, elf, ofl); in ld_process_ifl()
3363 ifl->ifl_soname = ifl->ifl_name; in ld_process_ifl()
3365 ifl->ifl_soname = soname; in ld_process_ifl()
3373 ifl->ifl_flags |= FLG_IF_DIRECT; in ld_process_ifl()
3375 ifl->ifl_flags |= FLG_IF_LAZYLD; in ld_process_ifl()
3377 ifl->ifl_flags |= FLG_IF_GRPPRM; in ld_process_ifl()
3379 ifl->ifl_flags |= in ld_process_ifl()
3382 error = process_elf(ifl, elf, ofl); in ld_process_ifl()
3387 if (ifl->ifl_flags & MSK_IF_SYMINFO) in ld_process_ifl()
3396 ((ifl->ifl_flags & FLG_IF_RTLDINF) == 0)) { in ld_process_ifl()
3442 *ifl_ret = ifl; in ld_process_ifl()
3499 Ifl_desc *ifl; in ld_process_mem() local
3506 open_ret = ld_process_ifl(path, file, 0, elf, 0, ofl, rej, &ifl); in ld_process_mem()
3509 return (ifl); in ld_process_mem()
3555 Ifl_desc *ifl; in process_req_lib() local
3562 0, rej, &ifl); in process_req_lib()
3567 return (ifl); in process_req_lib()
3599 Ifl_desc *ifl; in ld_finish_libs() local
3612 for (APLIST_TRAVERSE(ofl->ofl_sos, idx2, ifl)) { in ld_finish_libs()
3613 if (!(ifl->ifl_flags & FLG_IF_NEEDSTR) && in ld_finish_libs()
3614 (strcmp(file, ifl->ifl_soname) == 0)) { in ld_finish_libs()
3615 sdf->sdf_file = ifl; in ld_finish_libs()
3643 &fd, ofl, 0, &_rej, &ifl); in ld_finish_libs()
3659 sdf->sdf_file = ifl; in ld_finish_libs()
3670 ifl = process_req_lib(sdf, path, file, ofl, &_rej); in ld_finish_libs()
3671 if (ifl == (Ifl_desc *)S_ERROR) { in ld_finish_libs()
3680 if (ifl) { in ld_finish_libs()
3681 sdf->sdf_file = ifl; in ld_finish_libs()
3709 ifl = process_req_lib(sdf, path, in ld_finish_libs()
3711 if (ifl == (Ifl_desc *)S_ERROR) { in ld_finish_libs()
3720 if (ifl) { in ld_finish_libs()
3721 sdf->sdf_file = ifl; in ld_finish_libs()
3737 ifl = process_req_lib(sdf, path, file, ofl, &rej); in ld_finish_libs()
3738 if (ifl == (Ifl_desc *)S_ERROR) { in ld_finish_libs()
3747 if (ifl) { in ld_finish_libs()
3748 sdf->sdf_file = ifl; in ld_finish_libs()