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 <robpike@gmail.com> 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 <skip.tavakkolian@gmail.com> wrote:

yes.


On Wed, May 1, 2013 at 11:11 AM, Rob Pike <robpike@gmail.com> 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