/branches/dynload/uspace/lib/rtld/arch/ppc32/src/reloc.c |
---|
83,7 → 83,6 |
{ |
uint32_t *plt; |
uint32_t *_plt_ent; |
int i; |
plt = m->dyn.plt_got; |
if (!plt) { |
191,12 → 190,7 |
printf("dest name: '%s'\n", dest->dyn.soname); |
printf("dest bias: 0x%x\n", dest->bias); |
if (sym_def) { |
if (sym_def->st_shndx == SHN_ABS) { |
/* Do not add bias to absolute symbols */ |
sym_addr = sym_def->st_value; |
} else { |
sym_addr = sym_def->st_value + dest->bias; |
} |
sym_addr = symbol_get_addr(sym_def, dest); |
printf("symbol definition found, addr=0x%x\n", sym_addr); |
} else { |
printf("symbol definition not found\n"); |
214,7 → 208,7 |
while(1); |
} |
//_plt_table[pidx] = sym_addr; |
plt[18+2*pidx] = _b(sym_addr, &plt[18+2*pidx]); |
plt[18+2*pidx] = _b((void *)sym_addr, &plt[18+2*pidx]); |
break; |
case R_PPC_ADDR32: |
/branches/dynload/uspace/lib/rtld/arch/ppc32/src/bootstrap.c |
---|
229,12 → 229,12 |
// r_ptr should point to a plt entry... |
uint32_t pidx = (r_ptr - _plt_ent) / 2; |
if (pidx >= plt_n) { |
kputint(0xee00ee0ee00); |
kputint(0xee00ee00); |
while(1); |
} |
// _plt_table[pidx] = sym_addr; |
// kputint(pidx); |
plt[18+2*pidx] = _b(sym_addr, &plt[18+2*pidx]); |
plt[18+2*pidx] = _b((void *)sym_addr, &plt[18+2*pidx]); |
// kputint(&plt[18]); |
// kputint(plt[18]); |
// while(1); |
/branches/dynload/uspace/lib/rtld/arch/ia32/src/reloc.c |
---|
99,12 → 99,7 |
// printf("dest name: '%s'\n", dest->dyn.soname); |
// printf("dest bias: 0x%x\n", dest->bias); |
if (sym_def) { |
if (sym_def->st_shndx == SHN_ABS) { |
/* Do not add bias to absolute symbols */ |
sym_addr = sym_def->st_value; |
} else { |
sym_addr = sym_def->st_value + dest->bias; |
} |
sym_addr = symbol_get_addr(sym_def, dest); |
// printf("symbol definition found, addr=0x%x\n", sym_addr); |
} else { |
printf("symbol definition not found\n"); |