This is the mail archive of the glibc-bugs@sources.redhat.com mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Multithreaded apps, built using Kegel's gcc-3.2.3-glibc-2.3.2 cross toolchain, hang on powerpc. I'm using kernel 2.4.18 (from montavista, with some adds) on IBM 405EP based bord. I'v got same result with 2.4.21. Although, linuxthreads uses value 35 for SIGRTMIN (in "linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c" ) It seems that glibc uses value 32 for SIGRTMIN (in "sysdeps/generic/allocrtsig.c" ) but linux kernel fixes it to 35. Following is an strace of the attached example (thr_sig.c). (Source from : http://mail-index.netbsd.org/netbsd-bugs/2003/01/22/0016.html). Also 'testThreads' form libxml2 reproduces same Bug. Someone else reported a similar bug on http://www.ppckernel.org/forums/read.php?f=9&i=145&t=145 ---------------------------------------------- strace execve("./thr_sig", ["./thr_sig"], [/* 26 vars */]) = 0 uname({sys="Linux", node="QT200_V2_0016", ...}) = 0 brk(0) = 0x100135b0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x30016000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/local/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat64("/usr/local/lib", 0x7fffedf0) = -1 ENOENT (No such file or directory) open("/usr/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 open("/lib/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0@\334"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=99057, ...}) = 0 mmap(0xff8f000, 393952, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xff8f000 mprotect(0xff9d000, 336608, PROT_NONE) = 0 mmap(0xff9f000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xff9f000 mmap(0xffaf000, 262880, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffaf000 close(3) = 0 open("/usr/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\317"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1638948, ...}) = 0 mmap(0xfe2f000, 1373520, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfe2f000 mprotect(0xff66000, 99664, PROT_NONE) = 0 mmap(0xff6f000, 53248, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x130000) = 0xff6f000 mmap(0xff7c000, 9552, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xff7c000 close(3) = 0 getpid() = 1993 rt_sigaction(SIGRTMIN, {0xff96e6c, [], 0}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xff96ea4, [], 0}, NULL, 8) = 0 rt_sigaction(SIGRT_2, {0xff96fa0, [], 0}, NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0 _sysctl({{CTL_KERN, KERN_VERSION}, 2, 0x7ffff868, 36, (nil), 0}) = 0 brk(0) = 0x100135b0 brk(0x100145b0) = 0x100145b0 brk(0x10015000) = 0x10015000 ugetrlimit(0x3, 0x7ffff908) = 0 brk(0x10016000) = 0x10016000 pipe([3, 4]) = 0 clone(child_stack=0x100155f0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 1994 write(4, "\177\377\371\210\0\0\0\5\177\377\371\330\17\352\243\4\177"..., 148) = 148 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 write(4, "\17\372\301@\0\0\0\0\0\0\0\0\20\0\10,\0\0\0\0\200\0\0\0"..., 148) = 148 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 rt_sigsuspend([] <unfinished ...> --- SIGRTMIN (Unknown signal 32) @ 0 (0) --- <... rt_sigsuspend resumed> ) = 32 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 rt_sigsuspend([]
Attachment:
thr_sig.c
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |