File: 0029-fix-build-with-gcc15.patch

package info (click to toggle)
runit 2.2.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,424 kB
  • sloc: ansic: 6,071; sh: 2,614; makefile: 399
file content (308 lines) | stat: -rw-r--r-- 8,555 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
From eeb6e0dd780ff614c19832943b7b894586fc944a Mon Sep 17 00:00:00 2001
From: "G. Pape" <pape@smarden.org>
Date: Sun, 5 Oct 2025 17:47:24 +0200
Subject: [PATCH 2/4] Fix build with gcc15

In C23 f() means f(void), consequently signal handler functions now
are f(int), alloc_free() parameter needs cast, buffer_unixwrite()
removes "const" from parameter.

https://gcc.gnu.org/gcc-15/changes.html
---
 src/alloc.h        |  6 +++---
 src/buffer.c       |  2 +-
 src/buffer.h       |  6 +++---
 src/buffer_get.c   |  2 +-
 src/buffer_put.c   |  2 +-
 src/buffer_write.c |  2 +-
 src/byte.h         | 12 ++++++------
 src/pathexec_env.c |  2 +-
 src/runit.c        |  6 +++---
 src/runsv.c        |  4 ++--
 src/runsvdir.c     |  4 ++--
 src/select.h1      |  2 +-
 src/select.h2      |  2 +-
 src/sig.c          |  4 ++--
 src/sig.h          |  6 +++---
 src/sig_catch.c    |  2 +-
 src/svlogd.c       |  8 ++++----
 src/wait.h         |  4 ++--
 20 files changed, 45 insertions(+), 39 deletions(-)

--- a/runit-2.2.0/src/alloc.h
+++ b/runit-2.2.0/src/alloc.h
@@ -3,8 +3,8 @@
 #ifndef ALLOC_H
 #define ALLOC_H
 
-extern /*@null@*//*@out@*/char *alloc();
-extern void alloc_free();
-extern int alloc_re();
+extern /*@null@*//*@out@*/char *alloc(unsigned int);
+extern void alloc_free(char *);
+extern int alloc_re(char **,unsigned int,unsigned int);
 
 #endif
--- a/runit-2.2.0/src/buffer.c
+++ b/runit-2.2.0/src/buffer.c
@@ -2,7 +2,7 @@
 
 #include "buffer.h"
 
-void buffer_init(buffer *s,int (*op)(),int fd,char *buf,unsigned int len)
+void buffer_init(buffer *s,int (*op)(int,char *,unsigned int),int fd,char *buf,unsigned int len)
 {
   s->x = buf;
   s->fd = fd;
--- a/runit-2.2.0/src/buffer.h
+++ b/runit-2.2.0/src/buffer.h
@@ -8,14 +8,14 @@
   unsigned int p;
   unsigned int n;
   int fd;
-  int (*op)();
+  int (*op)(int,char *,unsigned int);
 } buffer;
 
 #define BUFFER_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (op) }
 #define BUFFER_INSIZE 8192
 #define BUFFER_OUTSIZE 8192
 
-extern void buffer_init(buffer *,int (*)(),int,char *,unsigned int);
+extern void buffer_init(buffer *,int (*)(int,char *,unsigned int),int,char *,unsigned int);
 
 extern int buffer_flush(buffer *);
 extern int buffer_put(buffer *,const char *,unsigned int);
@@ -50,7 +50,7 @@
 extern int buffer_copy(buffer *,buffer *);
 
 extern int buffer_unixread(int,char *,unsigned int);
-extern int buffer_unixwrite(int,const char *,unsigned int);
+extern int buffer_unixwrite(int,char *,unsigned int);
 
 extern buffer *buffer_0;
 extern buffer *buffer_0small;
--- a/runit-2.2.0/src/buffer_get.c
+++ b/runit-2.2.0/src/buffer_get.c
@@ -4,7 +4,7 @@
 #include "byte.h"
 #include "error.h"
 
-static int oneread(int (*op)(),int fd,char *buf,unsigned int len)
+static int oneread(int (*op)(int,char *,unsigned int),int fd,char *buf,unsigned int len)
 {
   int r;
 
--- a/runit-2.2.0/src/buffer_put.c
+++ b/runit-2.2.0/src/buffer_put.c
@@ -5,7 +5,7 @@
 #include "byte.h"
 #include "error.h"
 
-static int allwrite(int (*op)(),int fd,const char *buf,unsigned int len)
+static int allwrite(int (*op)(int,char *,unsigned int),int fd,const char *buf,unsigned int len)
 {
   int w;
 
--- a/runit-2.2.0/src/buffer_write.c
+++ b/runit-2.2.0/src/buffer_write.c
@@ -3,7 +3,7 @@
 #include <unistd.h>
 #include "buffer.h"
 
-int buffer_unixwrite(int fd,const char *buf,unsigned int len)
+int buffer_unixwrite(int fd,char *buf,unsigned int len)
 {
   return write(fd,buf,len);
 }
--- a/runit-2.2.0/src/byte.h
+++ b/runit-2.2.0/src/byte.h
@@ -3,12 +3,12 @@
 #ifndef BYTE_H
 #define BYTE_H
 
-extern unsigned int byte_chr();
-extern unsigned int byte_rchr();
-extern void byte_copy();
-extern void byte_copyr();
-extern int byte_diff();
-extern void byte_zero();
+extern unsigned int byte_chr(char *,register unsigned int,int);
+extern unsigned int byte_rchr(char *,register unsigned int,int);
+extern void byte_copy(register char *,register unsigned int,register char *);
+extern void byte_copyr(register char *,register unsigned int,register char *);
+extern int byte_diff(register char *,register unsigned int,register char *);
+extern void byte_zero(char *,register unsigned int);
 
 #define byte_equal(s,n,t) (!byte_diff((s),(n),(t)))
 
--- a/runit-2.2.0/src/pathexec_env.c
+++ b/runit-2.2.0/src/pathexec_env.c
@@ -65,7 +65,7 @@
   e[elen] = 0;
 
   pathexec_run(file,argv,e);
-  alloc_free(e);
+  alloc_free((char *)e);
 }
 
 void pathexec(char *const *argv)
--- a/runit-2.2.0/src/runit.c
+++ b/runit-2.2.0/src/runit.c
@@ -33,23 +33,23 @@
 int sigp =0;
 int siga =0;
 
-void sig_cont_handler (void) {
+void sig_cont_handler (int unused) {
   sigc++;
   write(selfpipe[1], "", 1);
 }
-void sig_int_handler (void) {
+void sig_int_handler (int unused) {
   sigi++;
   write(selfpipe[1], "", 1);
 }
-void sig_pwr_handler (void) {
+void sig_pwr_handler (int unused) {
   sigp++;
   write(selfpipe[1], "", 1);
 }
-void sig_alarm_handler (void) {
+void sig_alarm_handler (int unused) {
   siga++;
   write(selfpipe[1], "", 1);
 }
-void sig_child_handler (void) { write(selfpipe[1], "", 1); }
+void sig_child_handler (int unused) { write(selfpipe[1], "", 1); }
 
 void sync_if_needed() {
   struct stat s;
--- a/runit-2.2.0/src/runsv.c
+++ b/runit-2.2.0/src/runsv.c
@@ -84,8 +84,8 @@
 
 void stopservice(struct svdir *);
 
-void s_child() { write(selfpipe[1], "", 1); }
-void s_term() {
+void s_child(int unused) { write(selfpipe[1], "", 1); }
+void s_term(int unused) {
   sigterm =1;
   write(selfpipe[1], "", 1); /* XXX */
 }
--- a/runit-2.2.0/src/runsvdir.c
+++ b/runit-2.2.0/src/runsvdir.c
@@ -59,9 +59,9 @@
 void warn3x(char *m1, char *m2, char *m3) {
   strerr_warn6("runsvdir ", svdir, ": warning: ", m1, m2, m3, 0);
 } 
-void s_term() { exitsoon =1; }
-void s_hangup() { exitsoon =2; }
-void s_alarm() { siga = 1; }
+void s_term(int unused) { exitsoon =1; }
+void s_hangup(int unused) { exitsoon =2; }
+void s_alarm(int unused) { siga = 1; }
 
 void report_forced_rescan() {
   struct taia stamp;
--- a/runit-2.2.0/src/select.h1
+++ b/runit-2.2.0/src/select.h1
@@ -7,6 +7,6 @@
 
 #include <sys/types.h>
 #include <sys/time.h>
-extern int select();
+extern int select(int,fd_set *,fd_set *,fd_set *,struct timeval *);
 
 #endif
--- a/runit-2.2.0/src/select.h2
+++ b/runit-2.2.0/src/select.h2
@@ -8,6 +8,6 @@
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/select.h>
-extern int select();
+extern int select(int,fd_set *,fd_set *,fd_set *,struct timeval *);
 
 #endif
--- a/runit-2.2.0/src/sig.c
+++ b/runit-2.2.0/src/sig.c
@@ -16,5 +16,5 @@
 int sig_pwr = SIGPWR;
 int sig_term = SIGTERM;
 
-void (*sig_defaulthandler)() = SIG_DFL;
-void (*sig_ignorehandler)() = SIG_IGN;
+void (*sig_defaulthandler)(int) = SIG_DFL;
+void (*sig_ignorehandler)(int) = SIG_IGN;
--- a/runit-2.2.0/src/sig.h
+++ b/runit-2.2.0/src/sig.h
@@ -12,10 +12,10 @@
 extern int sig_pwr;
 extern int sig_term;
 
-extern void (*sig_defaulthandler)();
-extern void (*sig_ignorehandler)();
+extern void (*sig_defaulthandler)(int);
+extern void (*sig_ignorehandler)(int);
 
-extern void sig_catch(int,void (*)());
+extern void sig_catch(int,void (*)(int));
 #define sig_ignore(s) (sig_catch((s),sig_ignorehandler))
 #define sig_uncatch(s) (sig_catch((s),sig_defaulthandler))
 
--- a/runit-2.2.0/src/sig_catch.c
+++ b/runit-2.2.0/src/sig_catch.c
@@ -4,7 +4,7 @@
 #include "sig.h"
 #include "hassgact.h"
 
-void sig_catch(int sig,void (*f)())
+void sig_catch(int sig,void (*f)(int))
 {
 #ifdef HASSIGACTION
   struct sigaction sa;
--- a/runit-2.2.0/src/svlogd.c
+++ b/runit-2.2.0/src/svlogd.c
@@ -616,11 +616,11 @@
   if (i > 0) linecomplete =(s[i -1] == '\n');
   return(i);
 }
-void sig_term_handler(void) {
+void sig_term_handler(int unused) {
   if (verbose) strerr_warn2(INFO, "sigterm received.", 0);
   exitasap =1;
 }
-void sig_child_handler(void) {
+void sig_child_handler(int unused) {
   int pid, l;
 
   if (verbose) strerr_warn2(INFO, "sigchild received.", 0);
@@ -632,11 +632,11 @@
         break;
       }
 }
-void sig_alarm_handler(void) {
+void sig_alarm_handler(int unused) {
   if (verbose) strerr_warn2(INFO, "sigalarm received.", 0);
   rotateasap =1;
 }
-void sig_hangup_handler(void) {
+void sig_hangup_handler(int unused) {
   if (verbose) strerr_warn2(INFO, "sighangup received.", 0);
   reopenasap =1;
 }
--- a/runit-2.2.0/src/wait.h
+++ b/runit-2.2.0/src/wait.h
@@ -3,8 +3,8 @@
 #ifndef WAIT_H
 #define WAIT_H
 
-extern int wait_pid();
-extern int wait_nohang();
+extern int wait_pid(int *,int);
+extern int wait_nohang(int *);
 extern int wait_stop();
 extern int wait_stopnohang();