diff options
author | Shenghou Ma <minux@golang.org> | 2014-08-07 18:41:09 -0400 |
---|---|---|
committer | Shenghou Ma <minux@golang.org> | 2014-08-07 18:41:09 -0400 |
commit | 4d0a2b27416e2cc87be30d198489d55db120d48b (patch) | |
tree | 957ba3922dcd9c44d6c127459c7454cc9d340096 /src/liblink | |
parent | 5c2185b02484d16637a42e0ae86fa240f8db316c (diff) | |
download | go-4d0a2b27416e2cc87be30d198489d55db120d48b.tar.gz |
[dev.power64] liblink: handle $i64. symbols, add debug output for -S -v, show rel addend in hex for RISC arches
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://codereview.appspot.com/127770043
Diffstat (limited to 'src/liblink')
-rw-r--r-- | src/liblink/objfile.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/liblink/objfile.c b/src/liblink/objfile.c index 22c9199d5..3b78571b7 100644 --- a/src/liblink/objfile.c +++ b/src/liblink/objfile.c @@ -138,6 +138,8 @@ writeobj(Link *ctxt, Biobuf *b) edata = nil; for(pl = ctxt->plist; pl != nil; pl = pl->link) { for(p = pl->firstpc; p != nil; p = plink) { + if(ctxt->debugasm && ctxt->debugvlog) + print("obj: %p %P\n", p, p); plink = p->link; p->link = nil; @@ -322,7 +324,10 @@ writesym(Link *ctxt, Biobuf *b, LSym *s) name = ""; if(r->sym != nil) name = r->sym->name; - Bprint(ctxt->bso, "\trel %d+%d t=%d %s+%lld\n", (int)r->off, r->siz, r->type, name, (vlong)r->add); + if(ctxt->arch->thechar == '5' || ctxt->arch->thechar == '9') + Bprint(ctxt->bso, "\trel %d+%d t=%d %s+%llux\n", (int)r->off, r->siz, r->type, name, (vlong)r->add); + else + Bprint(ctxt->bso, "\trel %d+%d t=%d %s+%lld\n", (int)r->off, r->siz, r->type, name, (vlong)r->add); } } @@ -725,7 +730,7 @@ rdsym(Link *ctxt, Biobuf *f, char *pkg) s->type = SRODATA; adduint32(ctxt, s, i32); s->reachable = 0; - } else if(strncmp(s->name, "$f64.", 5) == 0) { + } else if(strncmp(s->name, "$f64.", 5) == 0 || strncmp(s->name, "$i64.", 5) == 0) { int64 i64; i64 = strtoull(s->name+5, nil, 16); s->type = SRODATA; |