ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/README.linux-glibc
Revision: 1.4
Committed: Fri May 9 01:16:12 2003 UTC (21 years ago) by root
Branch: MAIN
Changes since 1.3: +4 -1 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 If Coro causes segfaults a lot on calls to libc functions, the cause is
2     probably a glibc compiled for i386 and kernel 2.2.
3    
4     Glibc contains a bug that causes any program linked against pthreads AND
5 root 1.2 using coroutines (of any kind, not only Coro, but including most userspace
6     thread libraries like gnu-pth) or alternate stacks to segfault on calls to
7     pthread functions. And glibc happens to do a lot of these calls.
8 root 1.1
9 root 1.4 (Even if you perl is not compiled against pthreads, Time::HiRes links
10 root 1.3 against -lrt, which drags in pthreads. The same is true for other modules,
11     so watch out).
12    
13 root 1.1 The bug is rather difficult to fix. This is not a problem, however, since
14     glibcs compiled for linux-2.4 use a much more efficient method to locate
15 root 1.2 their data, which happens to work with coroutines.
16 root 1.1
17     So the easy fix is to install a libc which was compiled for linux-2.4,
18 root 1.2 using the "--enable-kernel=2.4 i586-pc-linux-gnu" configure options.
19    
20     WARNING: This libc will no longer run on linux-2.2 or lower!
21 root 1.3
22     UPDATE: I am no longer able to compile glibc-2.3.2 in this way. The reason
23     is most probably that the glibc folks work on an enhanced thread local
24     storage facility, and it might be that you need a 2.5 or 2.6 kernel to
25     make it work. Glibc-2.3.1 works fine, though.
26 root 1.4
27     UPDATE: Time::HiRes in current perl snapshots does no longer link against
28     -lrt. That still means you need to patch it until 5.9.x gets out.