On Thu, Jul 30, 2009 at 8:37 PM, John David Anglin<dave@xxxxxxxxxxxxxxxxxx> wrote: >> case ELF_STUB_GOT: >> - stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */ >> + stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */ >> stub->insns[1] = 0x53610020; /* ldd 10(%dp),%r1 */ >> stub->insns[2] = 0xe820d000; /* bve (%r1) */ >> stub->insns[3] = 0x537b0030; /* ldd 18(%dp),%dp */ >> >> - stub->insns[0] |= reassemble_14(get_got(me, value, addend) & 0x3fff); >> + d = get_got(me, value, addend); >> + if (d <= 15) >> + stub->insns[0] |= reassemble_14(d); > > reassemble_14 is wrong for ldd format 3. Need format 5 and im5 insertion. This is using reassemble_14 for ldd format 5, which is correct. Cheers, Carlos. -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html