The recent version of klibc switched to -mregparm=3. This broke the
signal handlers parameter, cause it is called directly from the kernel
with the parameter on the stack not in a register.
}
#endif
-static void sig_handler(int signum)
+__attribute__((regparm(0))) static void sig_handler(int signum)
{
switch (signum) {
case SIGINT:
udevdb_exit();
exit(20 + signum);
default:
- dbg("unhandled signal");
+ dbg("unhandled signal %d", signum);
}
}
goto exit;
}
- /* set up a default signal handler for now */
+ /* set signal handlers */
act.sa_handler = sig_handler;
sigemptyset (&act.sa_mask);
act.sa_flags = SA_RESTART;
return;
}
-static void sig_handler(int signum)
+__attribute__((regparm(0))) static void sig_handler(int signum)
{
int rc;
+
switch (signum) {
case SIGINT:
case SIGTERM:
goto do_write;
break;
default:
- dbg("unhandled signal");
+ dbg("unhandled signal %d", signum);
return;
}