Rev 3174 | Rev 3448 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3174 | Rev 3400 | ||
---|---|---|---|
Line 229... | Line 229... | ||
229 | elf_run(&prog_info, &pcb); |
229 | elf_run(&prog_info, &pcb); |
230 | return 0; |
230 | return 0; |
231 | } |
231 | } |
232 | 232 | ||
233 | printf("Load dynamic linker '%s'\n", prog_info.interp); |
233 | printf("Load dynamic linker '%s'\n", prog_info.interp); |
234 | rc = elf_load_file("/rtld.so", RTLD_BIAS, &interp_info); |
234 | rc = elf_load_file(prog_info.interp, RTLD_BIAS, &interp_info); |
235 | if (rc < 0) { |
235 | if (rc < 0) { |
236 | printf("failed to load dynamic linker\n"); |
236 | printf("failed to load dynamic linker\n"); |
237 | ipc_answer_0(rid, EINVAL); |
237 | ipc_answer_0(rid, EINVAL); |
238 | return 1; |
238 | return 1; |
239 | } |
239 | } |
Line 243... | Line 243... | ||
243 | */ |
243 | */ |
244 | pcb.rtld_dynamic = interp_info.dynamic; |
244 | pcb.rtld_dynamic = interp_info.dynamic; |
245 | pcb.rtld_bias = RTLD_BIAS; |
245 | pcb.rtld_bias = RTLD_BIAS; |
246 | 246 | ||
247 | printf("run dynamic linker\n"); |
247 | printf("run dynamic linker\n"); |
- | 248 | printf("rtld_dynamic = 0x%lx\n", pcb.rtld_dynamic); |
|
248 | printf("entry point: 0x%llx\n", interp_info.entry); |
249 | printf("entry point: 0x%lx\n", interp_info.entry); |
- | 250 | printf("pcb address: 0x%lx\n", &pcb); |
|
249 | close_console(); |
251 | close_console(); |
250 | 252 | ||
251 | ipc_answer_0(rid, EOK); |
253 | ipc_answer_0(rid, EOK); |
252 | elf_run(&interp_info, &pcb); |
254 | elf_run(&interp_info, &pcb); |
253 | 255 |