there is a patch in perl-5.8.4 and perl-5.8.4-r1 ebuilds, /usr/portage/dev-lang/perl/files/perl-5.8.4-prelink-lpthread.patch, which makes sure perl's `libswanted' includes `-lpthread'. the patch is applied even when perl is compiled without threading. i use CPAN Coro module, and it worked ok with glibc-2.3.3 and perl-5.8.4. after upgrade to glibc-2.3.4, it breaks [perl segfaults when using Coro]. the problem can be cured by not applying the mentioned patch when building perl without threading. as far as i can tell, there is absolutely no need for this patch for nonthreaded perl anyway. suggested change to ebuild would be something like this: --- /usr/portage/dev-lang/perl/perl-5.8.4-r1.ebuild 2004-10-15 19:37:46.000000000 +0400 +++ /usr/local/portage/dev-lang/perl/perl-5.8.4-r1.ebuild 2004-10-21 07:31:01.000000000 +0400 @@ -73,8 +73,10 @@ # handling breaks. Fixes bug #14380. # <rac@gentoo.org> (14 Feb 2003) # reinstated to try to avoid sdl segfaults 03.10.02 - cd ${S}; epatch ${FILESDIR}/${P}-prelink-lpthread.patch - + if use ithreads + then + cd ${S}; epatch ${FILESDIR}/${P}-prelink-lpthread.patch + fi # Patch perldoc to not abort when it attempts to search # nonexistent directories; fixes bug #16589. # <rac@gentoo.org> (28 Feb 2003) Reproducible: Always Steps to Reproduce: 1. perl -MCPAN -e'get Coro' 2. cd .cpan/build/Coro-1.0; perl Makefile.PL; make Do you want to enable C context sharing (y/n) [y] y <s>etjmp/longjump, <u>context, <i>rix or <l>inux? [l] u 3. make test Actual Results: almost all test fail. Expected Results: all test passed. Portage 2.0.50-r11 (default-x86-2004.0, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.4.26) ================================================================= System uname: 2.4.26 i686 Intel(R) Celeron(R) CPU 1.70GHz Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=pentium4 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium4 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="apache2 apm avi berkdb bitmap-fonts crypt doc encode f77 foomaticdb gd gdbm gif gpm gtk2 imlib innodb jpeg kde libg++ libwww mad mbox mikmod mmx motif mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sasl sdl skey slang spell sse ssl tcpd truetype unicode vhost x86 xml2 xmms xprint xv zlib"
perl re-assignment.
pthreads are posix threads - ithreads are perl threads. Two different creatures, two different threads.
marking invalid - different kinds of threads