if(dlm){
char buf[8];
- write(cout, buf, INITDAT-textsize);
+ ewrite(cout, buf, INITDAT-textsize);
textsize = INITDAT;
}
for(t = 0; t < datsize; t += sizeof(buf)-100) {
/* no bug if cbc < 0 since obuf(cbuf) followed by ibuf in buf! */
n = sizeof(buf.cbuf) - cbc;
if(n)
- write(cout, buf.cbuf, n);
+ ewrite(cout, buf.cbuf, n);
cbp = buf.cbuf;
cbc = sizeof(buf.cbuf);
}
break;
}
}
- write(cout, buf.dbuf, n);
+ ewrite(cout, buf.dbuf, n);
}
void
if(dlm){
char buf[8];
- write(cout, buf, INITDAT-textsize);
+ ewrite(cout, buf, INITDAT-textsize);
textsize = INITDAT;
}
cflush();
elfstro = seek(cout, 0, 1);
elfsymsize = elfstro - elfsymo;
- write(cout, elfstrdat, elfstrsize);
+ ewrite(cout, elfstrdat, elfstrsize);
if(debug['v'])
Bprint(&bso, "%5.2f dwarf\n", cputime());
n = sizeof(buf.cbuf) - cbc;
if(n)
- write(cout, buf.cbuf, n);
+ ewrite(cout, buf.cbuf, n);
cbp = buf.cbuf;
cbc = sizeof(buf.cbuf);
}
}
}
- write(cout, buf.dbuf, n);
+ ewrite(cout, buf.dbuf, n);
if(!debug['a'])
return;
if(dlm){
char buf[8];
- write(cout, buf, INITDAT-textsize);
+ ewrite(cout, buf, INITDAT-textsize);
textsize = INITDAT;
}
n = sizeof(buf.cbuf) - cbc;
if(n)
- write(cout, buf.cbuf, n);
+ ewrite(cout, buf.cbuf, n);
cbp = buf.cbuf;
cbc = sizeof(buf.cbuf);
}
}
}
- write(cout, buf.dbuf, n);
+ ewrite(cout, buf.dbuf, n);
if(!debug['a'])
return;
n = strlen(interp)+1;
seek(cout, ELFRESERVE-n, 0);
- write(cout, interp, n);
+ ewrite(cout, interp, n);
return n;
}
*l = sect;
return sect;
}
+
+void
+ewrite(int fd, void *buf, int n)
+{
+ if(write(fd, buf, n) < 0) {
+ diag("write error: %r");
+ errorexit();
+ }
+}
void mark(Sym *s);
char* expandpkg(char*, char*);
void deadcode(void);
+void ewrite(int, void*, int);
int pathchar(void);
void* mal(uint32);
}
}
- write(cout, linkdata, nlinkdata);
- write(cout, strtab, nstrtab);
+ ewrite(cout, linkdata, nlinkdata);
+ ewrite(cout, strtab, nstrtab);
}
return rnd(nlinkdata+nstrtab, INITRND);
}
goto done;
memset(buf, 0, sizeof buf);
seek(fd, sh[ep->shstrndx].offset, 0);
- read(fd, buf, sh[ep->shstrndx].size);
+ i = read(fd, buf, sh[ep->shstrndx].size);
+ USED(i); // shut up ubuntu gcc
for(i = 0; i < ep->shnum; i++) {
if (strcmp(&buf[sh[i].name], ".gosymtab") == 0) {
goto done;
memset(buf, 0, sizeof buf);
seek(fd, sh[ep->shstrndx].offset, 0);
- read(fd, buf, sh[ep->shstrndx].size);
+ i = read(fd, buf, sh[ep->shstrndx].size);
+ USED(i); // shut up ubuntu gcc
for(i = 0; i < ep->shnum; i++) {
if (strcmp(&buf[sh[i].name], ".gosymtab") == 0) {