This is the patch to remove sprint from ppc. I had to modify the fpexcname() API in trap.c, like in mtx. Reference: /n/sources/patch/saved/remove-sprint-ppc Date: Fri Feb 25 22:46:30 CET 2011 Signed-off-by: 20h@r-36.net --- /sys/src/9/ppc/trap.c Fri Feb 25 22:39:25 2011 +++ /sys/src/9/ppc/trap.c Fri Feb 25 22:39:19 2011 @@ -109,7 +109,7 @@ "overflow", "invalid operation", }; -char *fpexcname(Ureg*, ulong, char*); +char *fpexcname(Ureg*, ulong, char*, int); #define FPEXPMASK 0xfff80300 /* Floating exception bits in fpscr */ @@ -256,7 +256,7 @@ default: if(user){ spllo(); - sprint(buf, "sys: floating point in note handler:"); + snprint(buf, sizeof(buf), "sys: floating point in note handler:"); postnote(up, 1, buf, NDebug); break; } @@ -275,7 +275,7 @@ s = "undefined program exception"; if(user){ spllo(); - sprint(buf, "sys: trap: %s", s); + snprint(buf, sizeof(buf), "sys: trap: %s", s); postnote(up, 1, buf, NDebug); break; } @@ -285,7 +285,7 @@ default: if(ecode < nelem(excname) && user){ spllo(); - sprint(buf, "sys: trap: %s", excname[ecode]); + snprint(buf, sizeof(buf), "sys: trap: %s", excname[ecode]); postnote(up, 1, buf, NDebug); break; } @@ -330,7 +330,7 @@ dumpregs(ureg); panic("fault: 0x%lux", addr); } - sprint(buf, "sys: trap: fault %s addr=0x%lux", read? "read" : "write", addr); + snprint(buf, sizeof(buf), "sys: trap: fault %s addr=0x%lux", read? "read" : "write", addr); postnote(up, 1, buf, NDebug); } up->insyscall = insyscall; @@ -390,7 +390,7 @@ } char* -fpexcname(Ureg *ur, ulong fpscr, char *buf) +fpexcname(Ureg *ur, ulong fpscr, char *buf, int blen) { int i; char *s; @@ -405,7 +405,7 @@ s = fpcause[i]; if(s == 0) return "no floating point exception"; - sprint(buf, "%s fppc=0x%lux", s, fppc); + snprint(buf, blen, "%s fppc=0x%lux", s, fppc); return buf; } @@ -722,7 +722,7 @@ l = strlen(n->msg); if(l > ERRMAX-15) /* " pc=0x12345678\0" */ l = ERRMAX-15; - sprint(n->msg+l, " pc=0x%.8lux", ur->pc); + snprint(n->msg+l, sizeof(n->msg)-l, " pc=0x%.8lux", ur->pc); } if(n->flag!=NUser && (up->notified || up->notify==0)){ --- /sys/src/9/ppc/main.c Fri Feb 25 22:39:32 2011 +++ /sys/src/9/ppc/main.c Fri Feb 25 22:39:28 2011 @@ -437,7 +437,7 @@ int i; char cc[KNAMELEN], *p; - sprint(cc, "%s%d", class, ctlrno); + snprint(cc, sizeof(cc), "%s%d", class, ctlrno); p = getconf(cc); if(p == 0) --- /sys/src/9/ppc/devtls.c Fri Feb 25 22:39:42 2011 +++ /sys/src/9/ppc/devtls.c Fri Feb 25 22:39:36 2011 @@ -320,7 +320,7 @@ nm = eve; if((name = trnames[s]) == nil) { name = trnames[s] = smalloc(16); - sprint(name, "%d", s); + snprint(name, 16, "%d", s); } devdir(c, q, name, 0, nm, 0555, dp); unlock(&tdlock); --- /sys/src/9/ppc/devflash.c Fri Feb 25 22:39:52 2011 +++ /sys/src/9/ppc/devflash.c Fri Feb 25 22:39:48 2011 @@ -361,7 +361,7 @@ flash->bootprotect = 1; flash->offset = offset; fname = malloc(8); - sprint(fname, "flash%d", ctlrno); + snprint(fname, 8, "flash%d", ctlrno); addpart(nil, fname, offset, offset + flash->size); offset += flash->size; } @@ -760,15 +760,15 @@ char err[64]; if(status & (ISEs_lockerr)){ - sprint(err, "flash%d: block locked %lux", bank, status); + snprint(err, sizeof(err), "flash%d: block locked %lux", bank, status); error(err); } if(status & (ISEs_powererr)){ - sprint(err, "flash%d: low prog voltage %lux", bank, status); + snprint(err, sizeof(err), "flash%d: low prog voltage %lux", bank, status); error(err); } if(status & (ISEs_progerr|ISEs_eraseerr)){ - sprint(err, "flash%d: i/o error %lux", bank, status); + snprint(err, sizeof(err), "flash%d: i/o error %lux", bank, status); error(err); } } --- /sys/src/9/ppc/devether.c Fri Feb 25 22:39:59 2011 +++ /sys/src/9/ppc/devether.c Fri Feb 25 22:39:56 2011 @@ -391,16 +391,16 @@ */ if(ether->irq >= 0) intrenable(ether->irq, ether->interrupt, ether, name); - i = sprint(buf, "#l%d: %s: %dMbps port 0x%luX irq %d", + i = snprint(buf, sizeof(buf), "#l%d: %s: %dMbps port 0x%luX irq %d", ctlrno, ether->type, ether->mbps, ether->port, ether->irq); if(ether->mem) - i += sprint(buf+i, " addr 0x%luX", PADDR(ether->mem)); + i += snprint(buf+i, sizeof(buf)-i, " addr 0x%luX", PADDR(ether->mem)); if(ether->size) - i += sprint(buf+i, " size 0x%luX", ether->size); - i += sprint(buf+i, ": %2.2ux%2.2ux%2.2ux%2.2ux%2.2ux%2.2ux", + i += snprint(buf+i, sizeof(buf)-i, " size 0x%luX", ether->size); + i += snprint(buf+i, sizeof(buf)-i, ": %2.2ux%2.2ux%2.2ux%2.2ux%2.2ux%2.2ux", ether->ea[0], ether->ea[1], ether->ea[2], ether->ea[3], ether->ea[4], ether->ea[5]); - sprint(buf+i, "\n"); + snprint(buf+i, sizeof(buf)-i, "\n"); print(buf); if(ether->mbps >= 100){