summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorforsyth <forsyth@vitanuova.com>2010-07-22 11:56:14 +0100
committerforsyth <forsyth@vitanuova.com>2010-07-22 11:56:14 +0100
commitce8e0d607a2bec33fcaac7237d0b5535e5b152a1 (patch)
tree41e7f8c5524e6636b88085bb8d675e041ffd4c52
parent98a84ad18808c4c7892dac82539cd678dc45e952 (diff)
20100722
-rw-r--r--CHANGES2
-rw-r--r--include/bio.h2
-rw-r--r--include/version.h2
-rw-r--r--limbo/asm.c18
-rw-r--r--limbo/sbl.c6
-rw-r--r--os/cerf250/cerf2
-rw-r--r--os/cerf405/cerf2
-rwxr-xr-xservices/webget/inferno.gifbin2987 -> 2541 bytes
-rw-r--r--utils/0l/obj.c2
-rw-r--r--utils/0l/sched.c2
-rw-r--r--utils/acid/builtin.c8
-rw-r--r--utils/acid/print.c8
-rw-r--r--utils/kprof/kprof.c2
-rw-r--r--utils/ms2/ms2.c12
-rw-r--r--utils/nm/nm.c27
15 files changed, 57 insertions, 38 deletions
diff --git a/CHANGES b/CHANGES
index f059c815..8a368fa5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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
index a46a74a0..7223c056 100755
--- a/services/webget/inferno.gif
+++ b/services/webget/inferno.gif
Binary files differ
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);
}