chpst: fix whitespace damage
svlogd: fix bug (two different "line" variables); stop using data/bss

function                                             old     new   delta
processorstop                                        419     432     +13
rotate                                               514     525     +11
buffer_pwrite                                        493     499      +6
sig_term_handler                                      68      70      +2
sig_hangup_handler                                    34      36      +2
sig_alarm_handler                                     34      36      +2
rmoldest                                             305     307      +2
processorstart                                       401     403      +2
logdir_close                                         188     190      +2
tmaxflag                                               1       -      -1
rotateasap                                             1       -      -1
repl                                                   1       -      -1
reopenasap                                             1       -      -1
linecomplete                                           1       -      -1
exitasap                                               1       -      -1
wstat                                                  4       -      -4
verbose                                                9       5      -4
replace                                                4       -      -4
nearest_rotate                                         4       -      -4
linemax                                                4       -      -4
linelen                                                4       -      -4
line                                                   4       -      -4
fndir                                                  4       -      -4
fl_flag_0                                              4       -      -4
fdwdir                                                 4       -      -4
dirn                                                   4       -      -4
dir                                                    4       -      -4
blocked_sigset                                         4       -      -4
sig_child_handler                                    248     239      -9
logdirs_reopen                                      1263    1240     -23
buffer_pread                                         532     473     -59
svlogd_main                                         1466    1367     -99
------------------------------------------------------------------------------
(add/remove: 0/18 grow/shrink: 9/5 up/down: 42/-248)         Total: -206 bytes
   text    data     bss     dec     hex filename
 770916     989    9496  781401   bec59 busybox_old
 770768     980    9448  781196   beb8c busybox_unstripped

diff --git a/runit/svlogd.c b/runit/svlogd.c
index cdf4e42..bf46ef7 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -37,31 +37,7 @@
 
 #define FMT_PTIME 30
 
-static unsigned verbose;
-static int linemax = 1000;
-////static int buflen = 1024;
-static int linelen;
-
-static char **fndir;
-static int fdwdir;
-static int wstat;
-static unsigned nearest_rotate;
-
-static char *line;
-static smallint exitasap;
-static smallint rotateasap;
-static smallint reopenasap;
-static smallint linecomplete = 1;
-
-static smallint tmaxflag;
-
-static char repl;
-static const char *replace = "";
-
-static sigset_t *blocked_sigset;
-static int fl_flag_0;
-
-static struct logdir {
+struct logdir {
 	////char *btmp;
 	/* pattern list to match, in "aa\0bb\0\cc\0\0" form */
 	char *inst;
@@ -81,8 +57,64 @@
 	char fnsave[FMT_PTIME];
 	char match;
 	char matcherr;
-} *dir;
-static unsigned dirn;
+};
+
+
+struct globals {
+	struct logdir *dir;
+	unsigned verbose;
+	int linemax;
+	////int buflen;
+	int linelen;
+
+	int fdwdir;
+	char **fndir;
+	int wstat;
+	unsigned nearest_rotate;
+
+	smallint exitasap;
+	smallint rotateasap;
+	smallint reopenasap;
+	smallint linecomplete;
+	smallint tmaxflag;
+
+	char repl;
+	const char *replace;
+	int fl_flag_0;
+	unsigned dirn;
+
+	sigset_t blocked_sigset;
+};
+#define G (*(struct globals*)ptr_to_globals)
+#define dir            (G.dir           )
+#define verbose        (G.verbose       )
+#define linemax        (G.linemax       )
+#define buflen         (G.buflen        )
+#define linelen        (G.linelen       )
+#define fndir          (G.fndir         )
+#define fdwdir         (G.fdwdir        )
+#define wstat          (G.wstat         )
+#define nearest_rotate (G.nearest_rotate)
+#define exitasap       (G.exitasap      )
+#define rotateasap     (G.rotateasap    )
+#define reopenasap     (G.reopenasap    )
+#define linecomplete   (G.linecomplete  )
+#define tmaxflag       (G.tmaxflag      )
+#define repl           (G.repl          )
+#define replace        (G.replace       )
+#define blocked_sigset (G.blocked_sigset)
+#define fl_flag_0      (G.fl_flag_0     )
+#define dirn           (G.dirn          )
+#define INIT_G() do { \
+	PTR_TO_GLOBALS = xzalloc(sizeof(G)); \
+	linemax = 1000; \
+	/*buflen = 1024;*/ \
+	linecomplete = 1; \
+	replace = ""; \
+} while (0)
+
+#define line bb_common_bufsiz1
+
 
 #define FATAL "fatal: "
 #define WARNING "warning: "
@@ -700,14 +732,14 @@
 			}
 		}
 
-		sigprocmask(SIG_UNBLOCK, blocked_sigset, NULL);
+		sigprocmask(SIG_UNBLOCK, &blocked_sigset, NULL);
 		i = nearest_rotate - now;
 		if (i > 1000000)
 			i = 1000000;
 		if (i <= 0)
 			i = 1;
 		poll(&input, 1, i * 1000);
-		sigprocmask(SIG_BLOCK, blocked_sigset, NULL);
+		sigprocmask(SIG_BLOCK, &blocked_sigset, NULL);
 
 		i = ndelay_read(0, s, len);
 		if (i >= 0)
@@ -814,7 +846,6 @@
 int svlogd_main(int argc, char **argv);
 int svlogd_main(int argc, char **argv)
 {
-	sigset_t ss;
 	char *r,*l,*b;
 	ssize_t stdin_cnt = 0;
 	int i;
@@ -822,7 +853,7 @@
 	unsigned timestamp = 0;
 	void* (*memRchr)(const void *, int, size_t) = memchr;
 
-#define line bb_common_bufsiz1
+	INIT_G();
 
 	opt_complementary = "tt:vv";
 	opt = getopt32(argv, "r:R:l:b:tv",
@@ -866,13 +897,12 @@
 	 * with the same stdin */
 	fl_flag_0 = fcntl(0, F_GETFL);
 
-	blocked_sigset = &ss;
-	sigemptyset(&ss);
-	sigaddset(&ss, SIGTERM);
-	sigaddset(&ss, SIGCHLD);
-	sigaddset(&ss, SIGALRM);
-	sigaddset(&ss, SIGHUP);
-	sigprocmask(SIG_BLOCK, &ss, NULL);
+	sigemptyset(&blocked_sigset);
+	sigaddset(&blocked_sigset, SIGTERM);
+	sigaddset(&blocked_sigset, SIGCHLD);
+	sigaddset(&blocked_sigset, SIGALRM);
+	sigaddset(&blocked_sigset, SIGHUP);
+	sigprocmask(SIG_BLOCK, &blocked_sigset, NULL);
 	sig_catch(SIGTERM, sig_term_handler);
 	sig_catch(SIGCHLD, sig_child_handler);
 	sig_catch(SIGALRM, sig_alarm_handler);