Description of problem: Following (security) update to perl - version 3:5.8.5-18.FC3 apache fails to start, with following message:- httpd: Cannot load /etc/httpd/modules/mod_perl.so into server: /etc/httpd/modules/mod_perl.so: undefined symbol: Perl_Ippid_ptr Version-Release number of selected component (if applicable): perl-5.8.5-18.FC3 mod_perl-1.99_16-3 httpd-2.0.53-3.3 How reproducible: Yes Steps to Reproduce: 1. Install those components 2. /sbin/service httpd start 3.
Breaking the ABI in updates is Bad.
workaround: d/l mod_perl-1.99_16-4 from CentOS and install that - i tested it this morning and it worked
Very sorry about this - yes, the ABI was inadvertently changed by the fix for bug 140563 รข 'Perl not properly supporting NPTL' . Basically, without this fix anything that relies on the value returned by Perl_Ippid_ptr or of Perl_ppid is broken, as this value is invalid, since the threads implementation uses nptl . Unfortunately, as was found for RHEL-3, this change requires many packages that rely on the PERL ABI to be rebuilt - see bug 142039 . So I'm backing out the change (removal of -DTHREADS_HAVE_PIDS from the configure command) and generating a new perl-5.8.5-20.FC3 update.
I'm only glancing at this bug report, but note that -DTHREADS_HAVE_PIDS is added to the CCFLAGS by hints/linux.sh, so it should always be present on linux. (Although I don't remember if that change was done post-5.8.5) That said, this change (which is in perl 5.8.7) unfortunately breaks ABI, that's true.
Hi Rafael - Yes, the patch which I'm backing out removed -DTHREADS_HAVE_PIDS from linux.sh - this is the way all our nptl using perl releases (RHEL-4, FC-4, FC-5(Rawhide)) are built. This change was deemed too disruptive for RHEL-3, as it has evidently turned out to be for FC-3 .
From User-Agent: XML-RPC perl-5.8.5-20.FC3 has been pushed for FC3, which should resolve this issue. If these problems are still present in this version, then please make note of it in this bug report.
thanks, 5.8.5-20.FC3 solved the httpd/mod_perl problem
> That said, this change (which is in perl 5.8.7) unfortunately breaks ABI, This means that the perl-5.8.7 in FC5 breaks ABI with perl modules built on earlier FC releases? If so we should remove the ABI compat symlinks from the main perl package.
In reply to Comment #8 : > That said, this change (which is in perl 5.8.7) unfortunately breaks ABI, NO - the perl releases in FC-5, FC-4, and RHEL-4 have been compiled without the -DTHREADS_HAVE_PID from the start. It makes no sense at all to provide the Perl_Ippid_ptr / Perl_ppid symbols if their values are invalid because of nptl usage - their presence is dependant on this -DTHREADS_HAVE_PID compile flag. Modules compiled with different C compiler, glibc, glibc-headers, perl version, and OS version cannot be expected to work when all these components have changed and would need recompilation anyway.
Confirm my problem resolved with this combination of pckages:- perl-5.8.5-20.FC3 mod_perl-1.99_16-3 httpd-2.0.53-3.3