Lines Matching refs:ecp

139 create_elf_from_binary(struct elfcopy *ecp, int ifd, const char *ifn)  in create_elf_from_binary()  argument
151 if (!TAILQ_EMPTY(&ecp->v_sec)) in create_elf_from_binary()
152 TAILQ_FOREACH_SAFE(sec, &ecp->v_sec, sec_list, sec_temp) { in create_elf_from_binary()
153 TAILQ_REMOVE(&ecp->v_sec, sec, sec_list); in create_elf_from_binary()
172 if (gelf_newehdr(ecp->eout, ecp->oec) == NULL) in create_elf_from_binary()
175 if (gelf_getehdr(ecp->eout, &oeh) == NULL) in create_elf_from_binary()
180 oeh.e_ident[EI_CLASS] = ecp->oec; in create_elf_from_binary()
181 oeh.e_ident[EI_DATA] = ecp->oed; in create_elf_from_binary()
187 oeh.e_machine = ecp->oem; in create_elf_from_binary()
191 ecp->flags |= RELOCATABLE; in create_elf_from_binary()
194 init_shstrtab(ecp); in create_elf_from_binary()
195 ecp->shstrtab->off = 0; in create_elf_from_binary()
201 off = gelf_fsize(ecp->eout, ELF_T_EHDR, 1, EV_CURRENT); in create_elf_from_binary()
204 (void) create_external_section(ecp, ".data", NULL, content, sb.st_size, in create_elf_from_binary()
208 if ((ecp->shstrtab->os = elf_newscn(ecp->eout)) == NULL) in create_elf_from_binary()
211 insert_to_sec_list(ecp, ecp->shstrtab, 1); in create_elf_from_binary()
214 shtab = insert_shtab(ecp, 1); in create_elf_from_binary()
217 shtab->sz += gelf_fsize(ecp->eout, ELF_T_SHDR, 2, EV_CURRENT); in create_elf_from_binary()
231 create_external_symtab(ecp); in create_elf_from_binary()
236 add_to_symtab(ecp, name, data_start, 0, 1, in create_elf_from_binary()
239 add_to_symtab(ecp, name, data_end, 0, 1, in create_elf_from_binary()
242 add_to_symtab(ecp, name, data_size, 0, SHN_ABS, in create_elf_from_binary()
244 finalize_external_symtab(ecp); in create_elf_from_binary()
245 create_symtab_data(ecp); in create_elf_from_binary()
253 if (gelf_update_ehdr(ecp->eout, &oeh) == 0) in create_elf_from_binary()
258 ecp->flags |= SYMTAB_EXIST; in create_elf_from_binary()
259 update_shdr(ecp, 0); in create_elf_from_binary()
262 if (gelf_getshdr(ecp->symtab->os, &sh) == NULL) in create_elf_from_binary()
265 sh.sh_link = elf_ndxscn(ecp->strtab->os); in create_elf_from_binary()
266 if (!gelf_update_shdr(ecp->symtab->os, &sh)) in create_elf_from_binary()
271 if (gelf_getehdr(ecp->eout, &oeh) == NULL) in create_elf_from_binary()
276 resync_sections(ecp); in create_elf_from_binary()
282 if (gelf_update_ehdr(ecp->eout, &oeh) == 0) in create_elf_from_binary()
287 if (elf_update(ecp->eout, ELF_C_WRITE) < 0) in create_elf_from_binary()
293 free_elf(ecp); in create_elf_from_binary()