I don't think changing ldelf.c would fix this issue. IIRC we don't use it on Plan 9. On May 1, 2013, at 15:25, Skip Tavakkolian wrote: > found the other instance at line ldelf.c:681; the assignment from e32 is indirect via "add". same results as before. > > > On Wed, May 1, 2013 at 12:14 PM, Skip Tavakkolian wrote: >> bootes% grep -n 'rp->add' *.[ch] | grep e32 >> ldelf.c:709: rp->add = e->e32(sect->base+rp->off); >> ldmacho.c:807: rp->add = (int32)e->e32(s->p+rp->off) + rp->off + 4 - secaddr; >> ldmacho.c:809: rp->add = (int32)e->e32(s->p+rp->off); >> ldpe.c:294: rp->add = (int32)le32(rsect->base+rp->off); >> ldpe.c:300: rp->add = le32(rsect->base+rp->off); >> >> it seems that ldelf.c:709 is the only place that fits your instructions. doing the cast has no effect (i.e. fails building cmd/go with the same error messages) >> >> >> On Wed, May 1, 2013 at 11:54 AM, Rob Pike wrote: >>> that means you are building from source >>> >>> in the ld directory, look for assignments to rd->add from calls to e32. two do not do a cast to int32. try casting those two and let me know if you can >>> >>> i will be at work in a couple of hours, not on a phone, and can offer more help then. >>> >>> >>> -rob >>> >>> On May 1, 2013, at 11:31 AM, Skip Tavakkolian wrote: >>> >>>> yes. >>>> >>>> >>>> On Wed, May 1, 2013 at 11:11 AM, Rob Pike wrote: >>>>> Are you using Plan 9? Because I don't understand how you could get >>>>> those messages on Plan 9, but I do on other systems. >>>>> >>>>> -rob >