diff options
| author | Russ Cox <rsc@golang.org> | 2013-12-09 07:42:55 -0800 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2013-12-09 07:42:55 -0800 |
| commit | 0c0589ec42447e09a35bc0891a59402ee2d1c4fd (patch) | |
| tree | f5bd20645a7f8d48a471df4585b15335ed410a67 /src/cmd/ld | |
| parent | 79479ac486c15ed5919773f1f28c1eecea19b8b9 (diff) | |
| download | go-0c0589ec42447e09a35bc0891a59402ee2d1c4fd.tar.xz | |
cmd/ld: fix linux/386 build
TBR=iant
CC=golang-dev
https://golang.org/cl/39400044
Diffstat (limited to 'src/cmd/ld')
| -rw-r--r-- | src/cmd/ld/data.c | 2 | ||||
| -rw-r--r-- | src/cmd/ld/ldelf.c | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/ld/data.c b/src/cmd/ld/data.c index ac28041fbb..9b799fe0b2 100644 --- a/src/cmd/ld/data.c +++ b/src/cmd/ld/data.c @@ -246,7 +246,7 @@ relocsym(LSym *s) o = r->sym->size + r->add; break; } -//print("relocate %s %p %s => %p %p %p %p [%p]\n", s->name, s->value+off, r->sym ? r->sym->name : "<nil>", (void*)symaddr(r->sym), (void*)s->value, (void*)r->off, (void*)r->siz, (void*)o); +//print("relocate %s %#llux (%#llux+%#llux, size %d) => %s %#llux +%#llx [%llx]\n", s->name, (uvlong)(s->value+off), (uvlong)s->value, (uvlong)r->off, r->siz, r->sym ? r->sym->name : "<nil>", (uvlong)symaddr(r->sym), (vlong)r->add, (vlong)o); switch(siz) { default: ctxt->cursym = s; diff --git a/src/cmd/ld/ldelf.c b/src/cmd/ld/ldelf.c index 4bc830ef32..f1091d57c3 100644 --- a/src/cmd/ld/ldelf.c +++ b/src/cmd/ld/ldelf.c @@ -712,6 +712,9 @@ ldelf(Biobuf *f, char *pkg, int64 len, char *pn) else diag("invalid rela size %d", rp->siz); } + if(rp->siz == 4) + rp->add = (int32)rp->add; + //print("rel %s %d %d %s %#llx\n", sect->sym->name, rp->type, rp->siz, rp->sym->name, rp->add); } qsort(r, n, sizeof r[0], rbyoff); // just in case |
