58,12 → 58,20 |
/* Do not relocate twice. */ |
if (m->relocated) return; |
|
module_process_pre_arch(m); |
|
if (m->dyn.plt_rel == DT_REL) { |
if (m->dyn.rel != NULL) |
DPRINTF("table type DT_REL\n"); |
if (m->dyn.rel != NULL) { |
DPRINTF("non-empty\n"); |
rel_table_process(m, m->dyn.rel, m->dyn.rel_sz); |
} |
/* FIXME: this seems wrong */ |
if (m->dyn.jmp_rel != NULL) |
if (m->dyn.jmp_rel != NULL) { |
DPRINTF("table type jmp-rel\n"); |
DPRINTF("non-empty\n"); |
rel_table_process(m, m->dyn.jmp_rel, m->dyn.plt_rel_sz); |
} |
} else { /* (m->dyn.plt_rel == DT_RELA) */ |
DPRINTF("table type DT_RELA\n"); |
if (m->dyn.rela != NULL) { |
142,6 → 150,7 |
runtime_env->next_bias += 0x100000; |
|
DPRINTF("filename:'%s'\n", name_buf); |
printf("load '%s' at 0x%x\n", name_buf, m->bias); |
|
rc = elf_load_file(name_buf, m->bias, ELDF_RW, &info); |
if (rc != EE_OK) { |