/illumos-gate/usr/src/cmd/sgs/libld/common/ |
H A D | ldmain.c | 148 Ofl_desc *ofl; in ld_main() local 258 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in ld_main() 259 ofl->ofl_ents)); in ld_main() 261 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in ld_main() 262 ofl->ofl_segs)); in ld_main() 270 ofl->ofl_objscnt = ofl->ofl_soscnt = 0; in ld_main() 330 if (ofl->ofl_ismove && (ld_process_move(ofl) == S_ERROR)) in ld_main() 433 ld_map_out(ofl); in ld_main() 451 *ofl->ofl_checksum = (Xword)elf_checksum(ofl->ofl_elf); in ld_main() 467 if ((ofl->ofl_size = elf_update(ofl->ofl_welf, ELF_C_WRITE)) == 0) { in ld_main() [all …]
|
H A D | args.c | 398 if (ofl->ofl_interp && (ofl->ofl_flags1 & FLG_OF1_NOINTRP)) in check_flags() 418 ofl->ofl_flags |= in check_flags() 443 if ((ofl->ofl_dtflags_1 & DF_1_NODEFLIB) && !ofl->ofl_rpath) in check_flags() 591 if (ofl->ofl_audit) in check_flags() 680 if (ofl->ofl_maps) { in check_flags() 712 if ((ofl->ofl_filtees == NULL) && (ofl->ofl_dtsfltrs == NULL)) in check_flags() 724 if ((ofl->ofl_objscnt == 0) && (ofl->ofl_soscnt == 0)) { in check_flags() 1186 ofl->ofl_soscnt++; in parseopt_pass1() 1196 if (ofl->ofl_name) in parseopt_pass1() 1999 ofl->ofl_ars_gsndx = ofl->ofl_arscnt; in parseopt_pass2() [all …]
|
H A D | sections.c | 1348 ofl->ofl_osgot = ld_place_section(ofl, isec, NULL, in ld_make_got() 1899 if ((ofl->ofl_oscap = ld_place_section(ofl, isec, in make_cap() 1909 if ((ofl->ofl_oscapinfo = make_sym_sec(ofl, in make_cap() 1969 ofl->ofl_osplt = ld_place_section(ofl, isec, NULL, in make_plt() 2024 cnt = 2 + ofl->ofl_hashbkts + DYNSYM_ALL_CNT(ofl); in make_hash() 3244 if ((ofl->ofl_pltcnt) || (ofl->ofl_pltpad)) in ld_make_sections() 3294 ((ofl->ofl_osversym = make_sym_sec(ofl, in ld_make_sections() 3304 if ((ofl->ofl_ossyminfo = make_sym_sec(ofl, in ld_make_sections() 3359 if (ofl->ofl_osplt && ofl->ofl_relocpltsz) { in ld_make_sections() 3360 if (make_reloc(ofl, ofl->ofl_osplt) == S_ERROR) in ld_make_sections() [all …]
|
H A D | outfile.c | 126 if ((ofl->ofl_fd = open(ofl->ofl_name, O_RDWR, in ld_open_outfile() 157 if ((ofl->ofl_fd = open(ofl->ofl_name, O_RDWR | O_CREAT | O_TRUNC, in ld_open_outfile() 199 ofl->ofl_name); in pad_outfile() 204 ofl->ofl_name); in pad_outfile() 397 fd = ofl->ofl_fd; in ld_create_outfile() 420 if ((ofl->ofl_nehdr = elf_newehdr(ofl->ofl_welf)) == NULL) { in ld_create_outfile() 425 ofl->ofl_nehdr->e_machine = ofl->ofl_dehdr->e_machine; in ld_create_outfile() 736 if ((ofl->ofl_phdr = elf_newphdr(ofl->ofl_welf, in ld_create_outfile() 772 if ((ofl->ofl_size = (size_t)elf_update(ofl->ofl_welf, in ld_create_outfile() 792 if ((ofl->ofl_nehdr = elf_getehdr(ofl->ofl_elf)) == NULL) { in ld_create_outfile() [all …]
|
H A D | update.c | 986 ofl->ofl_elimcnt + ofl->ofl_scopecnt, in update_osym() 991 ssndx = ofl->ofl_scopecnt + ofl->ofl_elimcnt; in update_osym() 1226 qsort(sorted_syms + ofl->ofl_scopecnt + ofl->ofl_elimcnt, in update_osym() 2336 if (ofl->ofl_osdynsymsort || ofl->ofl_osdyntlssort) { in update_odynamic() 4011 if (ofl->ofl_oscap && (ofl->ofl_flags & FLG_OF_PTCAP) && in ld_update_outfile() 4129 ofl->ofl_tlsphdr = &ofl->ofl_phdr[phdrndx++]; in ld_update_outfile() 4426 update_ostrtab(ofl->ofl_osstrtab, ofl->ofl_strtab, 0); in ld_update_outfile() 4507 if (ofl->ofl_osmove || ofl->ofl_isparexpn) in ld_update_outfile() 4569 DBG_CALL(Dbg_sec_strtab(ofl->ofl_lml, ofl->ofl_osshstrtab, in ld_update_outfile() 4571 DBG_CALL(Dbg_sec_strtab(ofl->ofl_lml, ofl->ofl_osstrtab, in ld_update_outfile() [all …]
|
H A D | machrel.amd.c | 152 if (ofl->ofl_pltcnt) in ld_mach_make_dynamic() 160 if (((ofl->ofl_flags & FLG_OF_RELOBJ) == 0) && ofl->ofl_pltcnt) { in ld_mach_update_odynamic() 162 if (ofl->ofl_osgot) in ld_mach_update_odynamic() 224 if (!OFL_DO_RELOC(ofl)) in plt_entry() 354 osp = ofl->ofl_osgot; in ld_perform_outreloc() 362 osp = ofl->ofl_osplt; in ld_perform_outreloc() 902 !ld_reloc_set_aux_osdesc(ofl, arsp, ofl->ofl_osgot)) in ld_do_activerelocs() 1092 ofl->ofl_size) in ld_do_activerelocs() 1370 rsp, ofl)); in ld_reloc_TLS() 1380 rsp, ofl)); in ld_reloc_TLS() [all …]
|
H A D | machrel.intel.c | 119 if (ofl->ofl_pltcnt) in ld_mach_make_dynamic() 127 if (((ofl->ofl_flags & FLG_OF_RELOBJ) == 0) && ofl->ofl_pltcnt) { in ld_mach_update_odynamic() 129 if (ofl->ofl_osgot) in ld_mach_update_odynamic() 276 osp = ofl->ofl_osgot; in ld_perform_outreloc() 284 osp = ofl->ofl_osplt; in ld_perform_outreloc() 396 osp = ofl->ofl_osgot; in ld_perform_outreloc() 913 !ld_reloc_set_aux_osdesc(ofl, arsp, ofl->ofl_osgot)) in ld_do_activerelocs() 1084 ofl->ofl_size) in ld_do_activerelocs() 1200 if ((orsp = ld_reloc_enter(ofl, &ofl->ofl_outrels, rsp, flags)) == NULL) in ld_add_outrel() 1374 rsp, ofl)); in ld_reloc_TLS() [all …]
|
H A D | ldlibs.c | 168 DBG_CALL(Dbg_libs_update(ofl->ofl_lml, ofl->ofl_ulibdirs, in ld_add_libdir() 169 ofl->ofl_dlibdirs)); in ld_add_libdir() 214 ofl, FLG_IF_NEEDED, rej, NULL); in find_lib_name() 218 ld_eprintf(ofl, ERR_WARNING, in find_lib_name() 371 ld_lib_setup(Ofl_desc *ofl) in ld_lib_setup() argument 397 path = process_lib_path(ofl, &ofl->ofl_ulibdirs, path, FALSE); in ld_lib_setup() 410 cp = process_lib_path(ofl, &ofl->ofl_ulibdirs, path, in ld_lib_setup() 415 ld_eprintf(ofl, ERR_WARNING, in ld_lib_setup() 424 cp = process_lib_path(ofl, &ofl->ofl_dlibdirs, Plibpath, TRUE); in ld_lib_setup() 431 DBG_CALL(Dbg_libs_init(ofl->ofl_lml, ofl->ofl_ulibdirs, in ld_lib_setup() [all …]
|
H A D | machrel.sparc.c | 178 if (ofl->ofl_pltcnt) in ld_mach_make_dynamic() 186 if (((ofl->ofl_flags & FLG_OF_RELOBJ) == 0) && ofl->ofl_pltcnt) { in ld_mach_update_odynamic() 188 if (ofl->ofl_osplt) in ld_mach_update_odynamic() 679 osp = ofl->ofl_osgot; in ld_perform_outreloc() 1200 !ld_reloc_set_aux_osdesc(ofl, arsp, ofl->ofl_osgot)) in ld_do_activerelocs() 1384 ofl->ofl_size) in ld_do_activerelocs() 1519 if ((orsp = ld_reloc_enter(ofl, &ofl->ofl_outrels, rsp, flags)) == NULL) in ld_add_outrel() 1545 ofl->ofl_pltpad++; in ld_add_outrel() 1648 rsp, ofl)); in ld_reloc_local() 1794 rsp, ofl)); in ld_reloc_TLS() [all …]
|
H A D | relocate.c | 234 Ofl_desc *ofl) in disp_scansyms() argument 558 if (ofl->ofl_relaux) { in ld_add_rel_aux() 799 if ((arsp = ld_reloc_enter(ofl, &ofl->ofl_actrels, rsp, flags)) == NULL) in ld_add_actrel() 907 ofl) == S_ERROR) in ld_reloc_GOT_relative() 1903 ofl->ofl_entrelscnt++; in process_reld() 2366 if (process_reld(ofl, in process_movereloc() 2378 if (process_reld(ofl, in process_movereloc() 2472 if (ofl->ofl_copyrels) { in ld_reloc_init() 2685 ofl->ofl_relocpltsz = 0; in ld_reloc_process() 2686 ofl->ofl_relocgotsz = 0; in ld_reloc_process() [all …]
|
H A D | files.c | 827 ofl->ofl_capchaincnt++; in ld_cap_add_family() 1274 ofl->ofl_caploclcnt++; in process_capinfo() 1283 ofl->ofl_locscnt--; in process_capinfo() 1827 if ((ofl->ofl_rpath = add_string(ofl->ofl_rpath, in process_rel_dynamic() 2262 if ((ofl->ofl_depaudit = add_string(ofl->ofl_depaudit, in process_dynamic() 2344 if (ofl->ofl_soname && in process_dynamic() 2644 ofl->ofl_soscnt++; in process_elf() 2648 ofl->ofl_objscnt++; in process_elf() 3021 ofl) == S_ERROR) in process_elf() 3265 apl = ofl->ofl_objs; in ld_process_ifl() [all …]
|
H A D | syms.c | 385 ofl->ofl_entercnt++; in ld_sym_enter() 1037 ofl) == S_ERROR) in ld_sym_spec() 1041 ofl) == S_ERROR) in ld_sym_spec() 1045 ofl) == S_ERROR) in ld_sym_spec() 1060 ofl) == S_ERROR) in ld_sym_spec() 1067 ofl) == S_ERROR) in ld_sym_spec() 1867 SYM_NOHASH, NULL, ofl)) != NULL) && (ensure_sym_local(ofl, in ld_sym_validate() 1872 SYM_NOHASH, NULL, ofl)) != NULL) && (ensure_sym_local(ofl, in ld_sym_validate() 1890 ret += ensure_array_local(ofl, ofl->ofl_initarray, in ld_sym_validate() 1894 ret += ensure_array_local(ofl, ofl->ofl_finiarray, in ld_sym_validate() [all …]
|
H A D | version.c | 121 ld_eprintf(ofl, ERR_FATAL, in vers_visit_children() 129 ld_eprintf(ofl, ERR_NONE, in vers_visit_children() 136 ld_eprintf(ofl, ERR_NONE, in vers_visit_children() 177 DBG_CALL(Dbg_ver_def_title(ofl->ofl_lml, ofl->ofl_name)); in ld_vers_check_defs() 200 ld_eprintf(ofl, ERR_FATAL, in ld_vers_check_defs() 348 strtbl = (OFL_IS_STATIC_OBJ(ofl)) ? ofl->ofl_strtab : in ld_vers_check_need() 349 ofl->ofl_dynstrtab; in ld_vers_check_need() 357 needndx = (ofl->ofl_vercnt > 0) ? (ofl->ofl_vercnt + 1) : 2; in ld_vers_check_need() 453 if (ofl->ofl_verneedsz == 0) in ld_vers_check_need() 953 ld_vers_base(Ofl_desc *ofl) in ld_vers_base() argument [all …]
|
H A D | resolve.c | 62 Ifl_desc *ifl, Ofl_desc *ofl) in sym_visibility_diag() argument 189 nsym, ifl, ofl); in sym_visibility() 192 nsym, ifl, ofl); in sym_visibility() 202 nsym, ifl, ofl); in sym_visibility() 205 nsym, ifl, ofl); in sym_visibility() 216 nsym, ifl, ofl); in sym_visibility() 219 nsym, ifl, ofl); in sym_visibility() 236 ifl, ofl); in sym_visibility() 244 ifl, ofl); in sym_visibility() 308 ifl, ofl); in sym_mach_check() [all …]
|
H A D | libs.c | 85 ld_eprintf(ofl, ERR_ELF, in process_member() 197 if (ofl->ofl_flags1 & FLG_OF1_ALLEXRT) { in ld_ar_setup() 232 ofl->ofl_arscnt++; in ld_ar_setup() 409 ofl->ofl_flags1 |= FLG_OF1_EXTRACT; in ar_input() 589 ld_eprintf(ofl, ERR_ELF, in ar_extract_bysym() 598 ld_eprintf(ofl, ERR_ELF, in ar_extract_bysym() 605 ofl)) == NULL) in ar_extract_bysym() 610 ofl)) == NULL) in ar_extract_bysym() 660 sdp, ofl)) == S_ERROR) in ar_extract_bysym() 784 ld_sup_open(ofl, &arpath, &arname, &fd, in ar_extract_all() [all …]
|
H A D | unwind.c | 366 if ((ofl->ofl_unwindhdr = ld_place_section(ofl, isp, NULL, in ld_unwind_make_hdr() 607 ld_eprintf(ofl, ERR_FATAL, in ld_unwind_populate_hdr() 609 ofl->ofl_name, in ld_unwind_populate_hdr() 618 ofl->ofl_name, in ld_unwind_populate_hdr() 634 ofl->ofl_name, in ld_unwind_populate_hdr() 654 ofl->ofl_name, in ld_unwind_populate_hdr() 676 ofl->ofl_name, in ld_unwind_populate_hdr() 682 ofl->ofl_name, in ld_unwind_populate_hdr() 718 ofl->ofl_name, in ld_unwind_populate_hdr() 724 ofl->ofl_name, in ld_unwind_populate_hdr() [all …]
|
H A D | machsym.sparc.c | 59 Ofl_desc *ofl) in ld_reg_check_sparc() argument 78 ld_eprintf(ofl, ERR_FATAL, in ld_reg_check_sparc() 127 Ofl_desc *ofl) in ld_mach_sym_typecheck_sparc() argument 224 ld_reg_find_sparc(Sym *sym, Ofl_desc *ofl) in ld_reg_find_sparc() argument 226 if (ofl->ofl_regsyms == NULL) in ld_reg_find_sparc() 229 return (ofl->ofl_regsyms[sym->st_value]); in ld_reg_find_sparc() 233 ld_reg_enter_sparc(Sym_desc *sdp, Ofl_desc *ofl) in ld_reg_enter_sparc() argument 235 if (ofl->ofl_regsyms == NULL) { in ld_reg_enter_sparc() 239 if ((ofl->ofl_regsyms = libld_calloc(ofl->ofl_regsymsno, in ld_reg_enter_sparc() 241 ofl->ofl_flags |= FLG_OF_FATAL; in ld_reg_enter_sparc() [all …]
|
H A D | sunwmove.c | 36 make_mvsections(Ofl_desc *ofl) in make_mvsections() argument 169 ld_process_move(Ofl_desc *ofl) in ld_process_move() argument 184 ld_eprintf(ofl, ERR_FATAL, in ld_process_move() 199 ld_eprintf(ofl, ERR_FATAL, in ld_process_move() 207 ld_eprintf(ofl, ERR_FATAL, in ld_process_move() 226 ld_eprintf(ofl, ERR_FATAL, in ld_process_move() 239 ld_sym_adjust_vis(sdp, ofl); in ld_process_move() 262 ofl->ofl_locscnt++; in ld_process_move() 336 if (OFL_IS_STATIC_EXEC(ofl)) { in ld_process_move() 339 ld_eprintf(ofl, ERR_FATAL, in ld_process_move() [all …]
|
H A D | place.c | 67 if ((ofl->ofl_dtflags_1 & DF_1_NOHDR) && in set_addralign() 704 ld_eprintf(ofl, ERR_FATAL, in eh_frame_muldef() 1055 ofl->ofl_flags1 |= FLG_OF1_RLXREL; in ld_place_section() 1241 set_addralign(ofl, osp, isp); in ld_place_section() 1261 if (os_attach_isp(ofl, osp, isp, in ld_place_section() 1339 ofl->ofl_flags |= FLG_OF_ADJOSCNT; in ld_place_section() 1340 ofl->ofl_shdrcnt++; in ld_place_section() 1373 eh_frame_muldef(ofl, isp); in ld_place_section() 1376 ofl->ofl_flags |= FLG_OF_EHFRAME; in ld_place_section() 1452 ofl->ofl_flags |= FLG_OF_TLSPHDR; in ld_place_section() [all …]
|
H A D | support.c | 65 ld_sup_loadso(Ofl_desc *ofl, const char *obj) in ld_sup_loadso() argument 75 ld_eprintf(ofl, ERR_FATAL, MSG_INTL(MSG_SUP_NOLOAD), in ld_sup_loadso() 86 DBG_CALL(Dbg_support_load(ofl->ofl_lml, obj, in ld_sup_loadso() 90 DBG_CALL(Dbg_support_action(ofl->ofl_lml, obj, in ld_sup_loadso() 109 DBG_CALL(Dbg_support_vnone(ofl->ofl_lml, in ld_sup_loadso() 120 ld_eprintf(ofl, ERR_FATAL, in ld_sup_loadso() 148 DBG_CALL(Dbg_support_action(ofl->ofl_lml, flp->fl_obj, in ld_sup_start() 150 (*flp->fl_fptr)(ofl->ofl_name, etype, caller); in ld_sup_start() 155 ld_sup_atexit(Ofl_desc *ofl, int ecode) in ld_sup_atexit() argument 274 ld_eprintf(ofl, ERR_ELF, MSG_INTL(MSG_ELF_GETDATA), in ld_sup_input_section() [all …]
|
H A D | order.c | 275 return ((uintptr_t)ld_place_section(ofl, isp, path_info, in place_unordered() 318 return (place_unordered(ofl, isp, path_info)); in ld_process_ordered() 328 return (place_unordered(ofl, isp, path_info)); in ld_process_ordered() 377 ofl->ofl_flags |= FLG_OF_KEY; in ld_process_ordered() 389 ld_sec_validate(Ofl_desc *ofl) in ld_sec_validate() argument 395 for (APLIST_TRAVERSE(ofl->ofl_segs, idx1, sgp)) { in ld_sec_validate() 402 ld_eprintf(ofl, ERR_WARNING, in ld_sec_validate() 463 ld_sort_ordered(Ofl_desc *ofl) in ld_sort_ordered() argument 468 DBG_CALL(Dbg_sec_order_list(ofl, 0)); in ld_sort_ordered() 470 for (APLIST_TRAVERSE(ofl->ofl_ordered, idx1, osp)) { in ld_sort_ordered() [all …]
|
H A D | exit.c | 43 ld_exit(Ofl_desc *ofl) in ld_exit() argument 48 if ((ofl->ofl_fd > 0) && ((ofl->ofl_flags1 & FLG_OF1_NONREG) == 0)) in ld_exit() 49 (void) unlink(ofl->ofl_name); in ld_exit() 54 ld_sup_atexit(ofl, 1); in ld_exit() 62 if (ofl->ofl_guideflags & FLG_OFG_ISSUED) in ld_exit() 63 ld_eprintf(ofl, ERR_GUIDANCE, MSG_INTL(MSG_GUIDE_SUMMARY)); in ld_exit() 136 ld_init_sighandler(Ofl_desc *ofl) in ld_init_sighandler() argument 141 Ofl = ofl; in ld_init_sighandler() 155 if (ofl->ofl_flags1 & FLG_OF1_NOSGHND) in ld_init_sighandler()
|
/illumos-gate/usr/src/cmd/sgs/liblddbg/common/ |
H A D | statistics.c | 66 Lm_list *lml = ofl->ofl_lml; in rel_cache_statistics() 98 Lm_list *lml = ofl->ofl_lml; in rel_aux_cache_statistics() 122 Lm_list *lml = ofl->ofl_lml; in Dbg_statistics_ld() 130 if (ofl->ofl_objscnt || ofl->ofl_soscnt || ofl->ofl_arscnt) { in Dbg_statistics_ld() 132 EC_XWORD(ofl->ofl_objscnt), EC_XWORD(ofl->ofl_soscnt), in Dbg_statistics_ld() 136 if (ofl->ofl_locscnt || ofl->ofl_globcnt) { in Dbg_statistics_ld() 138 EC_XWORD(ofl->ofl_globcnt), EC_XWORD(ofl->ofl_locscnt)); in Dbg_statistics_ld() 140 if (ofl->ofl_entercnt || ofl->ofl_scopecnt || ofl->ofl_elimcnt) { in Dbg_statistics_ld() 142 EC_XWORD(ofl->ofl_entercnt), EC_XWORD(ofl->ofl_scopecnt), in Dbg_statistics_ld() 150 EC_XWORD(ofl->ofl_entrelscnt), EC_XWORD(ofl->ofl_actrels.rc_cnt)); in Dbg_statistics_ld() [all …]
|
H A D | syms.c | 228 Lm_list *lml = ofl->ofl_lml; in Dbg_syms_entered() 236 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, sym, in Dbg_syms_entered() 371 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in Dbg_syms_ignore() 384 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in Dbg_syms_old() 400 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, sym, in Dbg_syms_new() 420 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in Dbg_syms_updated() 438 Lm_list *lml = ofl->ofl_lml; in Dbg_syms_resolving() 481 Lm_list *lml = ofl->ofl_lml; in Dbg_syms_copy_reloc() 511 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in Dbg_syms_copy_reloc() 553 ofl->ofl_dehdr->e_ident[EI_OSABI], ofl->ofl_dehdr->e_machine, in Dbg_syms_reduce() [all …]
|
/illumos-gate/usr/src/cmd/sgs/rtld/common/ |
H A D | object.c | 58 Ofl_desc *ofl; in elf_obj_init() local 75 ofl->ofl_dehdr = &dehdr; in elf_obj_init() 79 ofl->ofl_lml = lml; in elf_obj_init() 89 free(ofl); in elf_obj_init() 100 free(ofl); in elf_obj_init() 106 ELFPRV(olmp) = (void *)ofl; in elf_obj_init() 112 free(ofl); in elf_obj_init() 123 ofl->ofl_name = name; in elf_obj_init() 308 ehdr = ofl->ofl_nehdr; in elf_obj_fini() 309 phdr = ofl->ofl_phdr; in elf_obj_fini() [all …]
|