Patch by Vladislav Dudar from https://bugs.gentoo.org/874963 diff -Naur a/alloc.c b/alloc.c --- a/alloc.c 2024-03-02 22:40:29.336632203 +0300 +++ b/alloc.c 2024-03-02 22:44:54.890055799 +0300 @@ -1,7 +1,6 @@ +#include #include "alloc.h" #include "error.h" -extern char *malloc(); -extern void free(); #define ALIGNMENT 16 /* XXX: assuming that this alignment is enough */ #define SPACE 4096 /* must be multiple of ALIGNMENT */ diff -Naur a/auto-str.c b/auto-str.c --- a/auto-str.c 2024-03-02 22:40:29.336632203 +0300 +++ b/auto-str.c 2024-03-02 22:44:23.263775501 +0300 @@ -1,17 +1,17 @@ +#include #include "buffer.h" -#include "readwrite.h" #include "exit.h" char buf1[256]; buffer ss1 = BUFFER_INIT(write,1,buf1,sizeof(buf1)); -void puts(s) +void puts_djb(s) char *s; { if (buffer_puts(&ss1,s) == -1) _exit(111); } -main(argc,argv) +void main(argc,argv) int argc; char **argv; { @@ -25,20 +25,20 @@ value = argv[2]; if (!value) _exit(100); - puts("char "); - puts(name); - puts("[] = \"\\\n"); + puts_djb("char "); + puts_djb(name); + puts_djb("[] = \"\\\n"); while (ch = *value++) { - puts("\\"); + puts_djb("\\"); octal[3] = 0; octal[2] = '0' + (ch & 7); ch >>= 3; octal[1] = '0' + (ch & 7); ch >>= 3; octal[0] = '0' + (ch & 7); - puts(octal); + puts_djb(octal); } - puts("\\\n\";\n"); + puts_djb("\\\n\";\n"); if (buffer_flush(&ss1) == -1) _exit(111); _exit(0); } diff -Naur a/buffer_0.c b/buffer_0.c --- a/buffer_0.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer_0.c 2024-03-02 22:44:23.267108794 +0300 @@ -1,4 +1,3 @@ -#include "readwrite.h" #include "buffer.h" int buffer_0_read(fd,buf,len) int fd; char *buf; int len; diff -Naur a/buffer_1.c b/buffer_1.c --- a/buffer_1.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer_1.c 2024-03-02 22:44:23.267108794 +0300 @@ -1,4 +1,3 @@ -#include "readwrite.h" #include "buffer.h" char buffer_1_space[BUFFER_OUTSIZE]; diff -Naur a/buffer_1s.c b/buffer_1s.c --- a/buffer_1s.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer_1s.c 2024-03-02 22:44:23.280441964 +0300 @@ -1,4 +1,3 @@ -#include "readwrite.h" #include "buffer.h" char buffer_1small_space[256]; diff -Naur a/buffer_2.c b/buffer_2.c --- a/buffer_2.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer_2.c 2024-03-02 22:44:23.280441964 +0300 @@ -1,4 +1,3 @@ -#include "readwrite.h" #include "buffer.h" char buffer_2_space[256]; diff -Naur a/buffer.c b/buffer.c --- a/buffer.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer.c 2024-03-02 22:44:23.280441964 +0300 @@ -1,6 +1,6 @@ #include "buffer.h" -void buffer_init(buffer *s,int (*op)(),int fd,char *buf,unsigned int len) +void buffer_init(buffer *s,ssize_t (*op)(),int fd,char *buf,unsigned int len) { s->x = buf; s->fd = fd; diff -Naur a/buffer_get.c b/buffer_get.c --- a/buffer_get.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer_get.c 2024-03-02 22:44:23.280441964 +0300 @@ -2,9 +2,9 @@ #include "byte.h" #include "error.h" -static int oneread(int (*op)(),int fd,char *buf,unsigned int len) +static int oneread(long int (*op)(),int fd,char *buf,unsigned int len) { - int r; + long int r; for (;;) { r = op(fd,buf,len); diff -Naur a/buffer.h b/buffer.h --- a/buffer.h 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer.h 2024-03-02 22:44:23.280441964 +0300 @@ -1,19 +1,21 @@ #ifndef BUFFER_H #define BUFFER_H +#include + typedef struct buffer { char *x; unsigned int p; unsigned int n; int fd; - int (*op)(); + ssize_t (*op)(); } buffer; -#define BUFFER_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (op) } +#define BUFFER_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (long(*)())(op) } #define BUFFER_INSIZE 8192 #define BUFFER_OUTSIZE 8192 -extern void buffer_init(buffer *,int (*)(),int,char *,unsigned int); +extern void buffer_init(buffer *,ssize_t (*)(),int,char *,unsigned int); extern int buffer_flush(buffer *); extern int buffer_put(buffer *,char *,unsigned int); diff -Naur a/buffer_put.c b/buffer_put.c --- a/buffer_put.c 2024-03-02 22:40:29.336632203 +0300 +++ b/buffer_put.c 2024-03-02 22:44:23.280441964 +0300 @@ -3,9 +3,9 @@ #include "byte.h" #include "error.h" -static int allwrite(int (*op)(),int fd,char *buf,unsigned int len) +static int allwrite(long int (*op)(),int fd,char *buf,unsigned int len) { - int w; + long int w; while (len) { w = op(fd,buf,len); diff -Naur a/cdb.c b/cdb.c --- a/cdb.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdb.c 2024-03-02 22:44:23.280441964 +0300 @@ -3,7 +3,6 @@ #include #include #include -#include "readwrite.h" #include "error.h" #include "seek.h" #include "byte.h" diff -Naur a/cdbdump.c b/cdbdump.c --- a/cdbdump.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdbdump.c 2024-03-02 22:44:23.280441964 +0300 @@ -58,7 +58,7 @@ char strnum[FMT_ULONG]; -main() +void main() { uint32 eod; uint32 klen; diff -Naur a/cdbget.c b/cdbget.c --- a/cdbget.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdbget.c 2024-03-02 22:44:23.280441964 +0300 @@ -23,7 +23,7 @@ static struct cdb c; char buf[1024]; -main(int argc,char **argv) +void main(int argc,char **argv) { char *key; int r; diff -Naur a/cdb.h b/cdb.h --- a/cdb.h 2024-03-02 22:40:29.333298910 +0300 +++ b/cdb.h 2024-03-02 22:44:23.280441964 +0300 @@ -3,6 +3,7 @@ #ifndef CDB_H #define CDB_H +#include #include "uint32.h" #define CDB_HASHSTART 5381 diff -Naur a/cdb_make.c b/cdb_make.c --- a/cdb_make.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdb_make.c 2024-03-02 22:44:23.283775257 +0300 @@ -1,6 +1,5 @@ /* Public domain. */ -#include "readwrite.h" #include "seek.h" #include "error.h" #include "alloc.h" diff -Naur a/cdbmake.c b/cdbmake.c --- a/cdbmake.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdbmake.c 2024-03-02 22:44:23.283775257 +0300 @@ -36,7 +36,7 @@ static struct cdb_make c; -main(int argc,char **argv) +void main(int argc,char **argv) { unsigned int klen; unsigned int dlen; diff -Naur a/cdb_make.h b/cdb_make.h --- a/cdb_make.h 2024-03-02 22:40:29.333298910 +0300 +++ b/cdb_make.h 2024-03-02 22:44:23.283775257 +0300 @@ -3,6 +3,7 @@ #ifndef CDB_MAKE_H #define CDB_MAKE_H +#include #include "buffer.h" #include "uint32.h" diff -Naur a/cdbstats.c b/cdbstats.c --- a/cdbstats.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdbstats.c 2024-03-02 22:44:23.283775257 +0300 @@ -3,6 +3,7 @@ #include "buffer.h" #include "strerr.h" #include "seek.h" +#include "str.h" #include "cdb.h" #define FATAL "cdbstats: fatal: " @@ -68,7 +69,7 @@ static unsigned long numrecords; static unsigned long numd[11]; -main() +void main() { uint32 eod; uint32 klen; diff -Naur a/cdbtest.c b/cdbtest.c --- a/cdbtest.c 2024-03-02 22:40:29.333298910 +0300 +++ b/cdbtest.c 2024-03-02 22:44:23.283775257 +0300 @@ -3,6 +3,7 @@ #include "buffer.h" #include "strerr.h" #include "seek.h" +#include "str.h" #include "cdb.h" #define FATAL "cdbtest: fatal: " @@ -66,7 +67,7 @@ static struct cdb c; -main() +void main() { uint32 eod; uint32 klen; diff -Naur a/FILES b/FILES --- a/FILES 2024-03-02 22:40:29.333298910 +0300 +++ b/FILES 2024-03-02 22:44:23.283775257 +0300 @@ -55,12 +55,12 @@ fmt.h fmt_ulong.c hier.c +hier.h install.c instcheck.c open.h open_read.c open_trunc.c -readwrite.h scan.h scan_ulong.c seek.h diff -Naur a/hier.c b/hier.c --- a/hier.c 2024-03-02 22:40:29.336632203 +0300 +++ b/hier.c 2024-03-02 22:44:23.283775257 +0300 @@ -1,4 +1,5 @@ #include "auto_home.h" +#include "hier.h" void hier() { diff -Naur a/hier.h b/hier.h --- a/hier.h 1970-01-01 03:00:00.000000000 +0300 +++ b/hier.h 2024-03-02 22:44:23.283775257 +0300 @@ -0,0 +1,8 @@ +#ifndef HIER_H +#define HIER_H + +void h(char *home,int uid,int gid,int mode); +void d(char *home,char *subdir,int uid,int gid,int mode); +void c(char *home,char *subdir,char *file,int uid,int gid,int mode); + +#endif diff -Naur a/install.c b/install.c --- a/install.c 2024-03-02 22:40:29.336632203 +0300 +++ b/install.c 2024-03-02 22:44:23.283775257 +0300 @@ -1,8 +1,8 @@ +#include #include "buffer.h" #include "strerr.h" #include "error.h" #include "open.h" -#include "readwrite.h" #include "exit.h" extern void hier(); @@ -137,7 +137,7 @@ strerr_die6sys(111,FATAL,"unable to chmod .../",subdir,"/",file,": "); } -main() +void main() { fdsourcedir = open_read("."); if (fdsourcedir == -1) diff -Naur a/instcheck.c b/instcheck.c --- a/instcheck.c 2024-03-02 22:40:29.336632203 +0300 +++ b/instcheck.c 2024-03-02 22:44:23.283775257 +0300 @@ -1,8 +1,8 @@ #include #include +#include #include "strerr.h" #include "error.h" -#include "readwrite.h" #include "exit.h" extern void hier(); @@ -101,7 +101,7 @@ perm("",home,"/",file,S_IFREG,uid,gid,mode); } -main() +void main() { hier(); _exit(0); diff -Naur a/Makefile b/Makefile --- a/Makefile 2024-03-02 22:40:29.333298910 +0300 +++ b/Makefile 2024-03-02 22:44:23.300441719 +0300 @@ -17,7 +17,7 @@ ./load auto-str buffer.a unix.a byte.a auto-str.o: \ -compile auto-str.c buffer.h readwrite.h exit.h +compile auto-str.c buffer.h exit.h ./compile auto-str.c auto_home.c: \ @@ -40,19 +40,19 @@ ./compile buffer.c buffer_0.o: \ -compile buffer_0.c readwrite.h buffer.h +compile buffer_0.c buffer.h ./compile buffer_0.c buffer_1.o: \ -compile buffer_1.c readwrite.h buffer.h +compile buffer_1.c buffer.h ./compile buffer_1.c buffer_1s.o: \ -compile buffer_1s.c readwrite.h buffer.h +compile buffer_1s.c buffer.h ./compile buffer_1s.c buffer_2.o: \ -compile buffer_2.c readwrite.h buffer.h +compile buffer_2.c buffer.h ./compile buffer_2.c buffer_copy.o: \ @@ -91,7 +91,7 @@ ./makelib cdb.a cdb.o cdb_hash.o cdb_make.o cdb.o: \ -compile cdb.c readwrite.h error.h seek.h byte.h cdb.h uint32.h +compile cdb.c error.h seek.h byte.h cdb.h uint32.h ./compile cdb.c cdb_hash.o: \ @@ -99,7 +99,7 @@ ./compile cdb_hash.c cdb_make.o: \ -compile cdb_make.c readwrite.h seek.h error.h alloc.h cdb.h uint32.h \ +compile cdb_make.c seek.h error.h alloc.h cdb.h uint32.h \ cdb_make.h buffer.h uint32.h ./compile cdb_make.c @@ -184,7 +184,7 @@ ./compile fmt_ulong.c hier.o: \ -compile hier.c auto_home.h +compile hier.c hier.h auto_home.h ./compile hier.c install: \ @@ -192,7 +192,7 @@ ./load install hier.o auto_home.o buffer.a unix.a byte.a install.o: \ -compile install.c buffer.h strerr.h error.h open.h readwrite.h exit.h +compile install.c buffer.h strerr.h error.h open.h exit.h ./compile install.c instcheck: \ @@ -200,7 +200,7 @@ ./load instcheck hier.o auto_home.o buffer.a unix.a byte.a instcheck.o: \ -compile instcheck.c strerr.h error.h readwrite.h exit.h +compile instcheck.c strerr.h error.h exit.h ./compile instcheck.c it: \ diff -Naur a/readwrite.h b/readwrite.h --- a/readwrite.h 2024-03-02 22:40:29.336632203 +0300 +++ b/readwrite.h 1970-01-01 03:00:00.000000000 +0300 @@ -1,7 +0,0 @@ -#ifndef READWRITE_H -#define READWRITE_H - -extern int read(); -extern int write(); - -#endif diff -Naur a/seek.h b/seek.h --- a/seek.h 2024-03-02 22:40:29.336632203 +0300 +++ b/seek.h 2024-03-02 22:44:23.300441719 +0300 @@ -1,6 +1,8 @@ #ifndef SEEK_H #define SEEK_H +#include + typedef unsigned long seek_pos; extern seek_pos seek_cur(int); diff -Naur a/testzero.c b/testzero.c --- a/testzero.c 2024-03-02 22:40:29.333298910 +0300 +++ b/testzero.c 2024-03-02 22:44:23.300441719 +0300 @@ -14,7 +14,7 @@ static char data[65536]; struct cdb_make c; -main(int argc,char **argv) +void main(int argc,char **argv) { int fd; unsigned long loop;