Avoid non-portable signal(SIGCHLD, SIG_IGN)
Gerald Pfeifer
pfeifer at dbai.tuwien.ac.at
Wed Apr 30 05:04:42 CDT 2003
On Fri, 25 Apr 2003, Joerg Wunsch wrote:
> I didn't test that yet, but i think that should work. If SA_NOCLDWAIT
> is set (in a call for SIGCHLD), sa_handler ought to be ignored anyway.
I'm note sure whether that's related (in it's, unfortunately, beyond
my knowledge of threads and/or Wine to debug this), but...
With current CVS sources of Wine, every single Windows program I try
fails with the following error:
assertion "libc_sigaction" failed: file "../../scheduler/pthread.c",
line 661
which stems from the following snippet of code:
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
{
if (!libc_sigaction)
{
libc_sigaction = dlsym( RTLD_NEXT, "sigaction" );
assert( libc_sigaction );
}
return libc_sigaction(signum, act, oldact);
}
The backtrace looks as follows:
(gdb) bt
#0 0x5c06cbac in kill () from /usr/lib/libc.so.4
#1 0x5c0ae152 in abort () from /usr/lib/libc.so.4
#2 0x5c08a14f in __assert () from /usr/lib/libc.so.4
#3 0x5c16c404 in sigaction (signum=12, act=0xbfbfdce0, oldact=0xbfbfdcc8) at ../../scheduler/pthread.c:661
#4 0x5c074f09 in getcwd () from /usr/lib/libc.so.4
#5 0x5c167400 in CLIENT_InitServer () at ../../scheduler/client.c:618
#6 0x5c1685ab in process_init (argv=0xbfbff2e4) at ../../scheduler/process.c:414
#7 0x5c1689e1 in __wine_process_init (argc=2, argv=0xbfbff2e4) at ../../scheduler/process.c:585
#8 0x5c02130b in wine_init (argc=2, argv=0xbfbff2e4, error=0xbfbfee90 "", error_size=1024) at loader.c:429
#9 0x3c000569 in main (argc=2, argv=0xbfbff2e4) at main.c:32
#10 0x3c0004ae in _start ()
Gerald
--
Gerald "Jerry" pfeifer at dbai.tuwien.ac.at http://www.pfeifer.com/gerald/
More information about the wine-devel
mailing list