I've found the underlying problem with daemonless 'kmod' on Alpha.
Apparently, glibc header changes are to blame. I became suspicious after
noticing that kmod is compiled with __KERNEL__ defined. Turns out to be a
kernel vs. user space disagreement as to the storage type and size of
sigset_t.
The following quick hack brings kmod to life:
*** kmod.c.orig Mon Apr 20 19:56:45 1998
--- kmod.c Tue Apr 21 20:10:42 1998
***************
*** 62,68 ****
the signal just right.
*/
spin_lock_irq(¤t->sigmask_lock);
! sigfillset(¤t->blocked);
spin_unlock_irq(¤t->sigmask_lock);
set_fs(KERNEL_DS); /* Allow execve args to be in kernel space. */
--- 62,68 ----
the signal just right.
*/
spin_lock_irq(¤t->sigmask_lock);
! memset (¤t->blocked, '\0xff', sizeof(current->blocked));
spin_unlock_irq(¤t->sigmask_lock);
set_fs(KERNEL_DS); /* Allow execve args to be in kernel space. */
I get dizzy trying to figure out who is getting which prototype from
where, but maybe someone intimately familiar with the new glibc headers
can suggest a cleaner fix?
Enjoy.
Steve
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu