init fails to compile for !CONFIG_FEATURE_KILL_REMOVED
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Sat Feb 14 13:02:21 UTC 2009
Hi,
When CONFIG_FEATURE_KILL_REMOVED is off then we end up with
$ egrep "(INIT|KILL)" .config
CONFIG_INIT=y
CONFIG_FEATURE_USE_INITTAB=y
# CONFIG_FEATURE_KILL_REMOVED is not set
CONFIG_FEATURE_KILL_DELAY=
CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_INIT_SYSLOG=y
CONFIG_FEATURE_INIT_COREDUMPS=y
CONFIG_FEATURE_INITRD=y
CONFIG_KILL=y
CONFIG_KILLALL=y
CONFIG_KILLALL5=y
CONFIG_PKILL=y
That KILL_DELAY does no good for this spot:
Index: init/init.c
===================================================================
--- init/init.c (revision 25330)
+++ init/init.c (working copy)
- improve helptext
@@ -788,10 +788,13 @@ static void reload_inittab(void)
for (a = init_action_list; a; a = a->next)
if (a->action_type == ONCE && a->pid != 0)
kill(a->pid, SIGTERM);
- if (CONFIG_FEATURE_KILL_DELAY) {
+ if (ENABLE_FEATURE_KILL_DELAY) {
/* NB: parent will wait in NOMMU case */
if ((BB_MMU ? fork() : vfork()) == 0) { /* child */
- sleep(CONFIG_FEATURE_KILL_DELAY);
+#if !ENABLE_FEATURE_KILL_REMOVED && ENABLE_FEATURE_KILL_DELAY
+#define CONFIG_FEATURE_KILL_DELAY_SECS 0 /* logic goof w/ kconfig */
+#endif
+ sleep(CONFIG_FEATURE_KILL_DELAY_SECS);
for (a = init_action_list; a; a = a->next)
if (a->action_type == ONCE && a->pid != 0)
kill(a->pid, SIGKILL);
This should work but doesn't sound too clean. Suggestions?
More information about the busybox
mailing list