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
|
From 28c2b092f7d41aa723dad18b0484dca0da1cbbf5 Mon Sep 17 00:00:00 2001
From: Leorize <alaviss@users.noreply.github.com>
Date: Wed, 5 Jul 2017 11:07:07 +0700
Subject: [PATCH] sched: fix musl libc build
This commit solves the following error when building with musl libc
```
src/sched.c:34:17: error: 'sigset' redeclared as different kind of symbol
static sigset_t sigset;
^~~~~~
In file included from src/sched.c:21:0:
/usr/include/signal.h:231:8: note: previous declaration of 'sigset' was here
void (*sigset(int, void (*)(int)))(int);
^~~~~~
make: *** [<builtin>: src/sched.o] Error 1
make: *** Waiting for unfinished jobs....
```
Based on the patch by @E100Beta
---
src/sched.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/sched.c b/src/sched.c
index d1c4634..dabdeef 100644
--- a/src/sched.c
+++ b/src/sched.c
@@ -31,7 +31,7 @@
#include "json.h"
#include "log.h"
-static sigset_t sigset;
+static sigset_t set;
static int
gcd(int a, int b)
@@ -88,13 +88,13 @@ setup_timer(struct bar *bar)
static int
setup_signals(void)
{
- if (sigemptyset(&sigset) == -1) {
+ if (sigemptyset(&set) == -1) {
errorx("sigemptyset");
return 1;
}
#define ADD_SIG(_sig) \
- if (sigaddset(&sigset, _sig) == -1) { errorx("sigaddset(%d)", _sig); return 1; }
+ if (sigaddset(&set, _sig) == -1) { errorx("sigaddset(%d)", _sig); return 1; }
/* Control signals */
ADD_SIG(SIGTERM);
@@ -125,7 +125,7 @@ setup_signals(void)
#undef ADD_SIG
/* Block signals for which we are interested in waiting */
- if (sigprocmask(SIG_SETMASK, &sigset, NULL) == -1) {
+ if (sigprocmask(SIG_SETMASK, &set, NULL) == -1) {
errorx("sigprocmask");
return 1;
}
@@ -164,7 +164,7 @@ sched_start(struct bar *bar)
bar_poll_timed(bar);
while (1) {
- sig = sigwaitinfo(&sigset, &siginfo);
+ sig = sigwaitinfo(&set, &siginfo);
if (sig == -1) {
/* Hiding the bar may interrupt this system call */
if (errno == EINTR)
@@ -212,7 +212,7 @@ sched_start(struct bar *bar)
* Unblock signals (so subsequent syscall can be interrupted)
* and wait for child processes termination.
*/
- if (sigprocmask(SIG_UNBLOCK, &sigset, NULL) == -1)
+ if (sigprocmask(SIG_UNBLOCK, &set, NULL) == -1)
errorx("sigprocmask");
while (waitpid(-1, NULL, 0) > 0)
continue;
|