aboutsummaryrefslogtreecommitdiffstats
path: root/testing/i3blocks/fix-musl.patch
blob: 28d5af9df32b4127b264968b7df9e3a66063d79f (plain)
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;