diff options
| -rw-r--r-- | CHANGES | 2 | ||||
| -rw-r--r-- | include/bio.h | 2 | ||||
| -rw-r--r-- | include/version.h | 2 | ||||
| -rw-r--r-- | limbo/asm.c | 18 | ||||
| -rw-r--r-- | limbo/sbl.c | 6 | ||||
| -rw-r--r-- | os/cerf250/cerf | 2 | ||||
| -rw-r--r-- | os/cerf405/cerf | 2 | ||||
| -rwxr-xr-x | services/webget/inferno.gif | bin | 2987 -> 2541 bytes | |||
| -rw-r--r-- | utils/0l/obj.c | 2 | ||||
| -rw-r--r-- | utils/0l/sched.c | 2 | ||||
| -rw-r--r-- | utils/acid/builtin.c | 8 | ||||
| -rw-r--r-- | utils/acid/print.c | 8 | ||||
| -rw-r--r-- | utils/kprof/kprof.c | 2 | ||||
| -rw-r--r-- | utils/ms2/ms2.c | 12 | ||||
| -rw-r--r-- | utils/nm/nm.c | 27 |
15 files changed, 57 insertions, 38 deletions
@@ -1,3 +1,5 @@ +20100722 + include/bio.h add varargck and repair resulting diagnostics in utils and limbo/ [issue 237, mechiel] 20100719 appl/cmd/disk/mkfs.b change getname/getpath to cope with missing newline [issue 236] 20100715 diff --git a/include/bio.h b/include/bio.h index 775b3e7b..b4e552d8 100644 --- a/include/bio.h +++ b/include/bio.h @@ -71,3 +71,5 @@ int Bterm(Biobuf*); int Bungetc(Biobuf*); int Bungetrune(Biobuf*); long Bwrite(Biobuf*, void*, long); + +#pragma varargck argpos Bprint 2 diff --git a/include/version.h b/include/version.h index aee735a3..f783ac1f 100644 --- a/include/version.h +++ b/include/version.h @@ -1 +1 @@ -#define VERSION "Fourth Edition (20100719)" +#define VERSION "Fourth Edition (20100722)" diff --git a/limbo/asm.c b/limbo/asm.c index cf9b2d5f..06820da0 100644 --- a/limbo/asm.c +++ b/limbo/asm.c @@ -144,7 +144,7 @@ asminitializer(long offset, Node *n) Bprint(bout, "\tword\t@mp+%ld,%ld\n", offset, lab->inst->pc); offset += IBY2WD; } - Bprint(bout, "\tword\t@mp+%ld,%d\n", offset, c->iwild ? c->iwild->pc : -1); + Bprint(bout, "\tword\t@mp+%ld,%ld\n", offset, c->iwild ? c->iwild->pc : -1); break; case Tgoto: c = n->ty->cse; @@ -188,16 +188,16 @@ asminitializer(long offset, Node *n) break; case Tiface: if(LDT) - Bprint(bout, "\tword\t@ldt+%d,%d\n", offset, (long)n->val); + Bprint(bout, "\tword\t@ldt+%ld,%ld\n", offset, (long)n->val); else - Bprint(bout, "\tword\t@mp+%d,%d\n", offset, (long)n->val); + Bprint(bout, "\tword\t@mp+%ld,%ld\n", offset, (long)n->val); offset += IBY2WD; for(id = n->decl->ty->ids; id != nil; id = id->next){ offset = align(offset, IBY2WD); if(LDT) - Bprint(bout, "\text\t@ldt+%d,0x%lux,\"", offset, sign(id)); + Bprint(bout, "\text\t@ldt+%ld,0x%lux,\"", offset, sign(id)); else - Bprint(bout, "\text\t@mp+%d,0x%lux,\"", offset, sign(id)); + Bprint(bout, "\text\t@mp+%ld,0x%lux,\"", offset, sign(id)); dotlen = 0; idlen = id->sym->len + 1; if(id->dot->ty->kind == Tadt){ @@ -236,18 +236,18 @@ asmexc(Except *es) id = e->desc->id; else id = -1; - Bprint(bout, "\texception\t%d, %d, %d, %d, %d, %d\n", getpc(e->p1), getpc(e->p2), o, id, c->nlab, e->ne); + Bprint(bout, "\texception\t%ld, %ld, %d, %d, %d, %d\n", getpc(e->p1), getpc(e->p2), o, id, c->nlab, e->ne); for(i = 0; i < c->nlab; i++){ lab = &c->labs[i]; d = lab->start->decl; if(lab->start->ty->kind == Texception) d = d->init->decl; - Bprint(bout, "\texctab\t\"%s\", %d\n", d->sym->name, lab->inst->pc); + Bprint(bout, "\texctab\t\"%s\", %ld\n", d->sym->name, lab->inst->pc); } if(c->iwild == nil) Bprint(bout, "\texctab\t*, %d\n", -1); else - Bprint(bout, "\texctab\t*, %d\n", c->iwild->pc); + Bprint(bout, "\texctab\t*, %ld\n", c->iwild->pc); } } @@ -283,7 +283,7 @@ asminst(Inst *in) if(in->op == INOOP) continue; if(in->pc % 10 == 0) - Bprint(bout, "#%d\n", in->pc); + Bprint(bout, "#%ld\n", in->pc); Bprint(bout, "%I\n", in); } } diff --git a/limbo/sbl.c b/limbo/sbl.c index 0a0bf52c..5ffce98d 100644 --- a/limbo/sbl.c +++ b/limbo/sbl.c @@ -317,7 +317,7 @@ sbltype(Type *t, int force) break; case Ttuple: case Texception: - Bprint(bsym, "%c%d.", sbltname[t->kind], t->size); + Bprint(bsym, "%c%ld.", sbltname[t->kind], t->size); sbldecl(t->ids, Dfield); break; case Tadt: @@ -327,7 +327,7 @@ sbltype(Type *t, int force) Bputc(bsym, sbltname[t->kind]); if(d->dot != nil && !isimpmod(d->dot->sym)) Bprint(bsym, "%s->", d->dot->sym->name); - Bprint(bsym, "%s %s%d\n", d->sym->name, sblsrcconv(buf, buf+sizeof(buf), &d->src), d->ty->size); + Bprint(bsym, "%s %s%ld\n", d->sym->name, sblsrcconv(buf, buf+sizeof(buf), &d->src), d->ty->size); sbldecl(t->ids, Dfield); if(t->tags != nil){ Bprint(bsym, "%d\n", t->decl->tag); @@ -337,7 +337,7 @@ sbltype(Type *t, int force) if(lastt == tg->ty){ Bputc(bsym, '\n'); }else{ - Bprint(bsym, "%d\n", tg->ty->size); + Bprint(bsym, "%ld\n", tg->ty->size); sbldecl(tg->ty->ids, Dfield); } lastt = tg->ty; diff --git a/os/cerf250/cerf b/os/cerf250/cerf index 20b52181..820fba8d 100644 --- a/os/cerf250/cerf +++ b/os/cerf250/cerf @@ -11,7 +11,7 @@ dev dup ssl cap - sign +# sign # draw screen # pointer diff --git a/os/cerf405/cerf b/os/cerf405/cerf index 64265586..87e475b2 100644 --- a/os/cerf405/cerf +++ b/os/cerf405/cerf @@ -11,7 +11,7 @@ dev dup ssl cap - sign +# sign ip ip ipv6 ipaux iproute arp netlog ptclbsum iprouter plan9 nullmedium pktmedium netaux ether netif netaux diff --git a/services/webget/inferno.gif b/services/webget/inferno.gif Binary files differindex a46a74a0..7223c056 100755 --- a/services/webget/inferno.gif +++ b/services/webget/inferno.gif diff --git a/utils/0l/obj.c b/utils/0l/obj.c index 644925ac..d4ba70e5 100644 --- a/utils/0l/obj.c +++ b/utils/0l/obj.c @@ -165,7 +165,7 @@ main(int argc, char *argv[]) print("warning: -D0x%lux is ignored because of -R0x%lux\n", INITDAT, INITRND); if(debug['v']) - Bprint(&bso, "HEADER = -H0x%ld -T0x%lux -D0x%lux -R0x%lux\n", + Bprint(&bso, "HEADER = -H0x%x -T0x%lux -D0x%lux -R0x%lux\n", HEADTYPE, INITTEXT, INITDAT, INITRND); Bflush(&bso); zprg.as = AGOK; diff --git a/utils/0l/sched.c b/utils/0l/sched.c index 28e78f28..2f4b60f2 100644 --- a/utils/0l/sched.c +++ b/utils/0l/sched.c @@ -53,7 +53,7 @@ sched(Prog *p0, Prog *pe) s->p = *p; markregused(s, p); if(debug['X']) { - Bprint(&bso, "%P%|set", &s->p, 40); + Bprint(&bso, "%P\t\tset", &s->p); dumpbits(s, &s->set); Bprint(&bso, "; used"); dumpbits(s, &s->used); diff --git a/utils/acid/builtin.c b/utils/acid/builtin.c index 56c4dceb..1d8b0e77 100644 --- a/utils/acid/builtin.c +++ b/utils/acid/builtin.c @@ -915,10 +915,10 @@ patom(char type, Store *res) Bprint(bout, "%3d", (int)res->u0.sival&0xff); break; case 'X': - Bprint(bout, "%.8lux", (int)res->u0.sival); + Bprint(bout, "%.8ux", (int)res->u0.sival); break; case 'x': - Bprint(bout, "%.4lux", (int)res->u0.sival&0xffff); + Bprint(bout, "%.4ux", (int)res->u0.sival&0xffff); break; case 'Y': Bprint(bout, "%.16llux", res->u0.sival); @@ -933,7 +933,7 @@ patom(char type, Store *res) Bprint(bout, "%ud", (int)res->u0.sival&0xffff); break; case 'U': - Bprint(bout, "%ud", (ulong)res->u0.sival); + Bprint(bout, "%lud", (ulong)res->u0.sival); break; case 'Z': Bprint(bout, "%llud", res->u0.sival); @@ -972,7 +972,7 @@ patom(char type, Store *res) if(type != TSTRING) Bprint(bout, "*%c<%s>*", res->fmt, typenames[type]); else - Bprint(bout, "%S", res->u0.sstring->string); + Bprint(bout, "%S", (Rune*)res->u0.sstring->string); break; case 'a': case 'A': diff --git a/utils/acid/print.c b/utils/acid/print.c index 8043fcd7..3a101b80 100644 --- a/utils/acid/print.c +++ b/utils/acid/print.c @@ -201,10 +201,10 @@ pcode(Node *n, int d) Bprint(bout, "%.*sif ", d, tabs); pexpr(l); d++; - Bprint(bout, " then\n", d, tabs); + Bprint(bout, "%.*sthen\n", d, tabs); if(r && r->op == OELSE) { slist(r->left, d); - Bprint(bout, "%.*selse\n", d-1, tabs, d, tabs); + Bprint(bout, "%.*selse\n", d-1, tabs); slist(r->right, d); } else @@ -214,7 +214,7 @@ pcode(Node *n, int d) Bprint(bout, "%.*swhile ", d, tabs); pexpr(l); d++; - Bprint(bout, " do\n", d, tabs); + Bprint(bout, "%.*sdo\n", d, tabs); slist(r, d); break; case ORET: @@ -387,7 +387,7 @@ pexpr(Node *n) pexpr(l); break; case OWHAT: - Bprint(bout, "whatis", n->sym->name); + Bprint(bout, "whatis"); if(n->sym) Bprint(bout, " %s", n->sym->name); break; diff --git a/utils/kprof/kprof.c b/utils/kprof/kprof.c index a524815e..41ba3854 100644 --- a/utils/kprof/kprof.c +++ b/utils/kprof/kprof.c @@ -146,7 +146,7 @@ main(int argc, char *argv[]) Binit(&outbuf, 1, OWRITE); Bprint(&outbuf, "ms %% sym\n"); while(--k>=0) - Bprint(&outbuf, "%lud\t%3lud.%d\t%s\n", + Bprint(&outbuf, "%lud\t%3lud.%ld\t%s\n", tickstoms(cp[k].time), 100*cp[k].time/delta, (1000*cp[k].time/delta)%10, diff --git a/utils/ms2/ms2.c b/utils/ms2/ms2.c index e36307db..9644e0c8 100644 --- a/utils/ms2/ms2.c +++ b/utils/ms2/ms2.c @@ -136,11 +136,11 @@ record(uchar *s, int l) ulong cksum; if(addr & (0xFF<<24)){ - Bprint(&bout, "S3%.2X%.8X", l+5, addr); + Bprint(&bout, "S3%.2X%.8lX", l+5, addr); cksum = l+5; cksum += (addr>>24)&0xff; }else{ - Bprint(&bout, "S2%.2X%.6X", l+4, addr); + Bprint(&bout, "S2%.2X%.6lX", l+4, addr); cksum = l+4; } cksum += addr&0xff; @@ -151,7 +151,7 @@ record(uchar *s, int l) cksum += *s; Bprint(&bout, "%.2X", *s++); } - Bprint(&bout, "%.2X\n", (~cksum)&0xff); + Bprint(&bout, "%.2lX\n", (~cksum)&0xff); addr += l; } @@ -168,14 +168,14 @@ trailer(ulong a) cksum = 0; if(a & (0xFF<<24)){ - Bprint(&bout, "S7%.8X", a); + Bprint(&bout, "S7%.8lX", a); cksum += (a>>24)&0xff; }else - Bprint(&bout, "S9%.6X", a); + Bprint(&bout, "S9%.6lX", a); cksum += a&0xff; cksum += (a>>8)&0xff; cksum += (a>>16)&0xff; - Bprint(&bout, "%.2X\n", (~cksum)&0xff); + Bprint(&bout, "%.2lX\n", (~cksum)&0xff); } void diff --git a/utils/nm/nm.c b/utils/nm/nm.c index cf36ad10..147d1d3a 100644 --- a/utils/nm/nm.c +++ b/utils/nm/nm.c @@ -20,6 +20,7 @@ int hflag; int nflag; int sflag; int uflag; +int Tflag; Sym **fnames; /* file path translation table */ Sym **symptr; @@ -36,6 +37,13 @@ void dofile(Biobuf*); void zenter(Sym*); void +usage(void) +{ + fprint(2, "usage: nm [-aghnsTu] file ...\n"); + exits("usage"); +} + +void main(int argc, char *argv[]) { int i; @@ -44,13 +52,17 @@ main(int argc, char *argv[]) Binit(&bout, 1, OWRITE); argv0 = argv[0]; ARGBEGIN { + default: usage(); case 'a': aflag = 1; break; case 'g': gflag = 1; break; case 'h': hflag = 1; break; case 'n': nflag = 1; break; case 's': sflag = 1; break; case 'u': uflag = 1; break; + case 'T': Tflag = 1; break; } ARGEND + if (argc == 0) + usage(); if (argc > 1) multifile++; for(i=0; i<argc; i++){ @@ -78,14 +90,15 @@ main(int argc, char *argv[]) void doar(Biobuf *bp) { - int offset, size, obj; + vlong offset; + int size, obj; char membername[SARNAME]; multifile = 1; for (offset = Boffset(bp);;offset += size) { size = nextar(bp, offset, membername); if (size < 0) { - error("phase error on ar header %ld", offset); + error("phase error on ar header %lld", offset); return; } if (size == 0) @@ -141,10 +154,10 @@ cmp(const void *vs, const void *vt) s = (Sym**)vs; t = (Sym**)vt; if(nflag) - if((ulong)(*s)->value < (ulong)(*t)->value) + if((*s)->value < (*t)->value) return -1; else - return (ulong)(*s)->value > (ulong)(*t)->value; + return (*s)->value > (*t)->value; return strcmp((*s)->name, (*t)->name); } /* @@ -155,7 +168,7 @@ zenter(Sym *s) { static int maxf = 0; - if (s->value > maxf) { + if (s->value >= maxf) { maxf = (s->value+CHUNK-1) &~ (CHUNK-1); fnames = realloc(fnames, maxf*sizeof(*fnames)); if(fnames == 0) { @@ -263,8 +276,10 @@ printsyms(Sym **symptr, long nsym) cp = path; } else cp = s->name; + if (Tflag) + Bprint(&bout, "%8ux ", s->sig); if (s->value || s->type == 'a' || s->type == 'p') - Bprint(&bout, "%8lux %c %s\n", s->value, s->type, cp); + Bprint(&bout, "%8llux %c %s\n", s->value, s->type, cp); else Bprint(&bout, " %c %s\n", s->type, cp); } |
