160,7 → 160,7 |
* -fno-jump-tables. |
*/ |
switch (tag) { |
case DT_PLTRELSZ: jmp_rel_entries = dval/8; break; |
case DT_PLTRELSZ: jmp_rel_entries = dval/sizeof(elf_rela_t); break; |
case DT_JMPREL: jmp_rel_table = dptr; break; |
case DT_PLTGOT: |
/* PLT address */ |
167,7 → 167,7 |
plt = dptr; break; |
case DT_SYMTAB: sym_table = dptr; break; |
case DT_RELA: rel_table = dptr; break; |
case DT_RELASZ: rel_entries = dval / 8; break; |
case DT_RELASZ: rel_entries = dval / sizeof(elf_rela_t); break; |
default: break; |
} |
|
291,13 → 291,13 |
} |
|
kputint(-5); |
kputint(_plt_table[0]); |
} |
|
/* This will come in handy */ |
// runtime_env.rtld_dynamic = dynamic; |
// runtime_env.rtld.bias = bias; |
runtime_env.rtld_dynamic = dynamic; |
runtime_env.rtld.bias = bias; |
|
kputint(_plt_table[0]); |
} |
// volatile int ff=1; |
// while(ff); |
test_func(); |
311,15 → 311,15 |
__io_init(); |
kputint(-1); |
kputint(0x52); |
printf("Hello, world! (from ppc rtld)\n"); |
// printf("Hello, world! (from ppc rtld)\n"); |
kputint(0x62); |
while(1); |
// kputint(34); |
// _rtld_main(); |
// kputint(35); |
// __exit(); |
// while(1); |
kputint(34); |
_rtld_main(); |
kputint(35); |
__exit(); |
|
// kputint(36); |
kputint(36); |
} |
|
/** @} |