ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/README.linux-glibc
(Generate patch)

Comparing Coro/README.linux-glibc (file contents):
Revision 1.1 by root, Mon Dec 23 19:30:34 2002 UTC vs.
Revision 1.5 by pcg, Thu Apr 1 02:29:05 2004 UTC

1If Coro causes segfaults a lot on calls to libc functions, the cause is 1If Coro causes segfaults a lot on calls to libc functions, the cause is
2probably a glibc compiled for i386 and kernel 2.2. 2probably a glibc compiled for i386 and kernel 2.2 (for example, debian
3only supplies 2.2 and 2.6-optimized libraries, not 2.4).
3 4
4Glibc contains a bug that causes any program linked against pthreads AND 5Glibc contains a bug that causes any program linked against pthreads AND
5using coroutines (of any kind, not only Coro) or alternate stacks to 6using coroutines (of any kind, not only Coro, but including most userspace
7thread libraries like gnu-pth) or alternate stacks to segfault on calls to
6segfault on calls to pthread functions. And glibc happens to do a lot of 8pthread functions. And glibc happens to do a lot of these calls.
7these calls. 9
10(Even if you perl is not compiled against pthreads, Time::HiRes links
11against -lrt, which drags in pthreads. The same is true for other modules,
12so watch out).
8 13
9The bug is rather difficult to fix. This is not a problem, however, since 14The bug is rather difficult to fix. This is not a problem, however, since
10glibcs compiled for linux-2.4 use a much more efficient method to locate 15glibcs compiled for linux-2.4 use a much more efficient method to locate
11their data, which happens to work tiwh coroutines. 16their data, which happens to work with coroutines.
12 17
13So the easy fix is to install a libc which was compiled for linux-2.4, 18So the easy fix is to install a libc which was compiled for linux-2.4 (or
14using the --enable-kernel=2.4 configure option. WARNING: This kernel will 192.6) using the "--enable-kernel=2.4 i586-pc-linux-gnu" configure options.
20
15no longer run on linux-2.2 or lower! 21WARNING: This libc will no longer run on linux-2.2 or lower!
22
23UPDATE: Time::HiRes in current perl snapshots does no longer link against
24-lrt. That still means you need to patch it until 5.9.x gets out.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines