no update release from upstream since 1998 From 4d97f022968867b7d44c1a28df4ac209378f5914 Mon Sep 17 00:00:00 2001 From: "Z. Liu" Date: Tue, 30 Dec 2025 22:43:12 +0800 Subject: [PATCH] fix build for clang21 & gcc15 on both glibc & musl 1. --std=gnu17, too many errors otherwise 2. lto build issue in bug 968145 3. remove the redirection to /dev/null, so we can see unexpected result from feature tests diff --git a/Makefile b/Makefile index c9baad6..aa95f0f 100644 --- a/Makefile +++ b/Makefile @@ -139,22 +139,19 @@ makelib fmt_str.o fmt_uint.o fmt_uint0.o fmt_ulong.o scan_ulong.o hasgethr.h: \ trygethr.c compile load - ( ( ./compile trygethr.c && ./load trygethr ) >/dev/null \ - 2>&1 \ + ( ( ./compile trygethr.c && ./load trygethr ) \ && echo \#define HASGETHRTIME 1 || exit 0 ) > hasgethr.h rm -f trygethr.o hasmkffo.h: \ trymkffo.c compile load - ( ( ./compile trymkffo.c && ./load trymkffo ) >/dev/null \ - 2>&1 \ + ( ( ./compile trymkffo.c && ./load trymkffo ) \ && echo \#define HASMKFIFO 1 || exit 0 ) > hasmkffo.h rm -f trymkffo.o trymkffo hasrdtsc.h: \ tryrdtsc.c compile load - ( ( ./compile tryrdtsc.c && ./load tryrdtsc && ./tryrdtsc \ - ) >/dev/null 2>&1 \ + ( ( ./compile tryrdtsc.c && ./load tryrdtsc && ./tryrdtsc ) \ && echo \#define HASRDTSC 1 || exit 0 ) > hasrdtsc.h rm -f tryrdtsc.o tryrdtsc @@ -262,7 +259,7 @@ compile scan_ulong.c scan.h select.h: \ compile trysysel.c select.h1 select.h2 - ( ./compile trysysel.c >/dev/null 2>&1 \ + ( ./compile trysysel.c \ && cat select.h2 || cat select.h1 ) > select.h rm -f trysysel.o trysysel @@ -310,7 +307,7 @@ select.h scan.h leapsecs.h tai.h uint64.h taia.h socket.lib: \ trylsock.c compile load ( ( ./compile trylsock.c && \ - ./load trylsock -lsocket -lnsl ) >/dev/null 2>&1 \ + ./load trylsock -lsocket -lnsl ) \ && echo -lsocket -lnsl || exit 0 ) > socket.lib rm -f trylsock.o trylsock @@ -437,6 +434,6 @@ compile taiclockd.c taia.h tai.h uint64.h byte.h strerr.h uint64.h: \ tryulong64.c compile load uint64.h1 uint64.h2 ( ( ./compile tryulong64.c && ./load tryulong64 && \ - ./tryulong64 ) >/dev/null 2>&1 \ + ./tryulong64 ) \ && cat uint64.h1 || cat uint64.h2 ) > uint64.h rm -f tryulong64.o tryulong64 diff --git a/auto-str.c b/auto-str.c index acc3d60..4406caf 100644 --- a/auto-str.c +++ b/auto-str.c @@ -5,7 +5,7 @@ char buf1[256]; substdio ss1 = SUBSTDIO_FDBUF(write,1,buf1,sizeof(buf1)); -void puts(s) +void myputs(s) char *s; { if (substdio_puts(&ss1,s) == -1) _exit(111); @@ -25,20 +25,20 @@ char **argv; value = argv[2]; if (!value) _exit(100); - puts("char "); - puts(name); - puts("[] = \"\\\n"); + myputs("char "); + myputs(name); + myputs("[] = \"\\\n"); - while (ch = *value++) { - puts("\\"); + while ((ch = *value++)) { + myputs("\\"); octal[3] = 0; octal[2] = '0' + (ch & 7); ch >>= 3; octal[1] = '0' + (ch & 7); ch >>= 3; octal[0] = '0' + (ch & 7); - puts(octal); + myputs(octal); } - puts("\\\n\";\n"); + myputs("\\\n\";\n"); if (substdio_flush(&ss1) == -1) _exit(111); _exit(0); } diff --git a/clockspeed.c b/clockspeed.c index 700ec88..27293ff 100644 --- a/clockspeed.c +++ b/clockspeed.c @@ -1,3 +1,5 @@ +#include +#include #include #include #include "readwrite.h" @@ -15,7 +17,7 @@ #ifndef HASRDTSC #ifndef HASGETHRTIME - Error! Need an unadjusted hardware clock. +#error Need an unadjusted hardware clock. #endif #endif diff --git a/clockview.c b/clockview.c index 6440d2e..ff1dd57 100644 --- a/clockview.c +++ b/clockview.c @@ -1,3 +1,4 @@ +#include #include #include #include "substdio.h" diff --git a/hier.c b/hier.c index 1c9a28b..48a53d1 100644 --- a/hier.c +++ b/hier.c @@ -1,5 +1,9 @@ #include "auto_home.h" +extern void h(char *home, int uid, int gid, int mode); +extern void d(char *home, char *subdir, int uid, int gid, int mode); +extern void c(char *home, char *subdir, char *file, int uid, int gid, int mode); + void hier() { d("/var/lib","clockspeed",-1,-1,0755); diff --git a/install.c b/install.c index bf8afb6..656b71b 100644 --- a/install.c +++ b/install.c @@ -1,3 +1,4 @@ +#include #include "substdio.h" #include "strerr.h" #include "error.h" diff --git a/leapsecs_read.c b/leapsecs_read.c index ba2dbfa..13562d9 100644 --- a/leapsecs_read.c +++ b/leapsecs_read.c @@ -1,3 +1,5 @@ +#include +#include #include #include #include diff --git a/readwrite.h b/readwrite.h index 2a64968..9423ad6 100644 --- a/readwrite.h +++ b/readwrite.h @@ -1,7 +1,6 @@ #ifndef READWRITE_H #define READWRITE_H -extern int read(); -extern int write(); +#include #endif diff --git a/substdi.c b/substdi.c index 42407a1..ce73144 100644 --- a/substdi.c +++ b/substdi.c @@ -3,7 +3,7 @@ #include "error.h" static int oneread(op,fd,buf,len) -register int (*op)(); +register ssize_t (*op)(int, const void *, size_t); register int fd; register char *buf; register int len; diff --git a/substdio.c b/substdio.c index d03dff2..866ab80 100644 --- a/substdio.c +++ b/substdio.c @@ -2,7 +2,7 @@ void substdio_fdbuf(s,op,fd,buf,len) register substdio *s; -register int (*op)(); +register ssize_t (*op)(int, const void *, size_t); register int fd; register char *buf; register int len; diff --git a/substdio.h b/substdio.h index c3f7f7d..baa4a6c 100644 --- a/substdio.h +++ b/substdio.h @@ -1,12 +1,14 @@ #ifndef SUBSTDIO_H #define SUBSTDIO_H +#include + typedef struct substdio { char *x; int p; int n; int fd; - int (*op)(); + ssize_t (*op)(int, const void *, size_t); } substdio; #define SUBSTDIO_FDBUF(op,fd,buf,len) { (buf), 0, (len), (fd), (op) } diff --git a/substdo.c b/substdo.c index fb616f7..82a00c9 100644 --- a/substdo.c +++ b/substdo.c @@ -4,7 +4,7 @@ #include "error.h" static int allwrite(op,fd,buf,len) -register int (*op)(); +register ssize_t (*op)(int, const void *, size_t); register int fd; register char *buf; register int len; diff --git a/trygethr.c b/trygethr.c index aa8ccf5..b311b3d 100644 --- a/trygethr.c +++ b/trygethr.c @@ -1,7 +1,7 @@ #include #include -main() +void main() { hrtime_t t; diff --git a/trylsock.c b/trylsock.c index fbce408..c32bd40 100644 --- a/trylsock.c +++ b/trylsock.c @@ -1,4 +1,4 @@ -main() +int main() { ; } diff --git a/tryrdtsc.c b/tryrdtsc.c index aca3387..0dffa8b 100644 --- a/tryrdtsc.c +++ b/tryrdtsc.c @@ -1,4 +1,6 @@ -main() +#include + +void main() { unsigned long x[2]; unsigned long y[2]; diff --git a/tryulong64.c b/tryulong64.c index fda6d77..496b817 100644 --- a/tryulong64.c +++ b/tryulong64.c @@ -1,3 +1,5 @@ +#include + void main() { unsigned long u; -- 2.49.1