Revision: | 1.5 |
Committed: | Thu Apr 1 02:29:05 2004 UTC (20 years, 5 months ago) by pcg |
Branch: | MAIN |
CVS Tags: | rel-2_5, rel-4_22, rel-4_21, rel-4_0, rel-4_3, rel-3_41, rel-4_13, rel-4_11, rel-3_55, rel-3_51, rel-4_01, rel-4_03, rel-4_02, rel-2_0, rel-2_1, rel-1_1, rel-1_0, rel-1_9, rel-1_2, rel-3_6, rel-3_62, rel-3_63, rel-3_61, rel-1_5, rel-1_4, rel-1_7, rel-1_6, rel-3_4, rel-3_1, rel-3_5, rel-3_3, rel-3_2, rel-3_0, rel-3_01, rel-4_4, rel-3_11, rel-1_31, rel-4_1, rel-4_2, stack_sharing, rel-3_501, rel-4_31, rel-4_32, rel-4_33, rel-4_34, rel-4_35, rel-4_36, rel-4_37 |
Changes since 1.4: | +4 -8 lines |
Log Message: | *** empty log message *** |
# | User | Rev | Content |
---|---|---|---|
1 | root | 1.1 | If Coro causes segfaults a lot on calls to libc functions, the cause is |
2 | pcg | 1.5 | probably a glibc compiled for i386 and kernel 2.2 (for example, debian |
3 | only supplies 2.2 and 2.6-optimized libraries, not 2.4). | ||
4 | root | 1.1 | |
5 | Glibc contains a bug that causes any program linked against pthreads AND | ||
6 | root | 1.2 | using coroutines (of any kind, not only Coro, but including most userspace |
7 | thread libraries like gnu-pth) or alternate stacks to segfault on calls to | ||
8 | pthread functions. And glibc happens to do a lot of these calls. | ||
9 | root | 1.1 | |
10 | root | 1.4 | (Even if you perl is not compiled against pthreads, Time::HiRes links |
11 | root | 1.3 | against -lrt, which drags in pthreads. The same is true for other modules, |
12 | so watch out). | ||
13 | |||
14 | root | 1.1 | The bug is rather difficult to fix. This is not a problem, however, since |
15 | glibcs compiled for linux-2.4 use a much more efficient method to locate | ||
16 | root | 1.2 | their data, which happens to work with coroutines. |
17 | root | 1.1 | |
18 | pcg | 1.5 | So the easy fix is to install a libc which was compiled for linux-2.4 (or |
19 | 2.6) using the "--enable-kernel=2.4 i586-pc-linux-gnu" configure options. | ||
20 | root | 1.2 | |
21 | WARNING: This libc will no longer run on linux-2.2 or lower! | ||
22 | root | 1.3 | |
23 | root | 1.4 | UPDATE: 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. |