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.2 by root, Sat Mar 22 18:50:31 2003 UTC vs.
Revision 1.3 by root, Thu May 8 00:55:28 2003 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines