On Sun, Feb 03, 2008 at 05:47:01PM -0800, Russ Allbery wrote:
> > steve@spartacus:~$ sudo /etc/init.d/slapd start
> > Starting OpenLDAP: slapd - failed:
> > Error Can't load '/usr/lib/perl/5.8/auto/POSIX/POSIX.so' for module POSIX: /usr/lib/perl/5.8/auto/POSIX/POSIX.so: undefined symbol: PL_sig_name at /usr/lib/perl/5.8/XSLoader.pm line 70.
> > at /usr/lib/perl/5.8/POSIX.pm line 26
> > Compilation failed in require at /etc/perl/SampleLDAP.pm line 2.
> > BEGIN failed--compilation aborted at /etc/perl/SampleLDAP.pm line 2.
> > Compilation failed in require at (eval 2) line 1.
> > BEGIN failed--compilation aborted at (eval 2) line 1.
> > Can't call method "config" on an undefined value.
> Okay, thanks.
> I could have sworn that this wasn't happening with 2.3.30 or
> thereabouts... oh, I know what the difference is. I was testing on
> amd64. Right, now I understand.
> This is that problem that's caused by Perl modules not being linked with
> libperl on i386 (but not on any other architecture) and instead
> duplicating the symbols between perl and libperl and leaving them
> undefined in the modules. This works correctly if the modules are linked
> with libperl, which they are on amd64 and Debian's other architectures.
> You're right, this isn't closed; it's just i386-specific.
I was surprised to hear that perl modules were linked to libperl on !i386
(which would be the correct thing to do, I just didn't think the standard
perl build rules handled this). So I checked, and on my amd64 system:
# slapd
Error Can't load '/usr/lib/perl/5.8/auto/POSIX/POSIX.so' for module POSIX: /usr/lib/perl/5.8/auto/POSIX/POSIX.so: undefined symbol: PL_sig_name at /usr/lib/perl/5.8/XSLoader.pm line 70.
at /usr/lib/perl/5.8/POSIX.pm line 26
Compilation failed in require at /etc/perl/SampleLDAP.pm line 2.
BEGIN failed--compilation aborted at /etc/perl/SampleLDAP.pm line 2.
Compilation failed in require at (eval 2) line 1.
BEGIN failed--compilation aborted at (eval 2) line 1.
#
I have no idea if this is a regression from previous perl builds, but it
looks to me like it's a general problem at this point.
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
<email address hidden> <email address hidden>
On Sun, Feb 03, 2008 at 05:47:01PM -0800, Russ Allbery wrote:
> > steve@spartacus:~$ sudo /etc/init.d/slapd start perl/5. 8/auto/ POSIX/POSIX. so' for module POSIX: /usr/lib/ perl/5. 8/auto/ POSIX/POSIX. so: undefined symbol: PL_sig_name at /usr/lib/ perl/5. 8/XSLoader. pm line 70. perl/5. 8/POSIX. pm line 26 SampleLDAP. pm line 2. SampleLDAP. pm line 2.
> > Starting OpenLDAP: slapd - failed:
> > Error Can't load '/usr/lib/
> > at /usr/lib/
> > Compilation failed in require at /etc/perl/
> > BEGIN failed--compilation aborted at /etc/perl/
> > Compilation failed in require at (eval 2) line 1.
> > BEGIN failed--compilation aborted at (eval 2) line 1.
> > Can't call method "config" on an undefined value.
> Okay, thanks.
> I could have sworn that this wasn't happening with 2.3.30 or
> thereabouts... oh, I know what the difference is. I was testing on
> amd64. Right, now I understand.
> This is that problem that's caused by Perl modules not being linked with
> libperl on i386 (but not on any other architecture) and instead
> duplicating the symbols between perl and libperl and leaving them
> undefined in the modules. This works correctly if the modules are linked
> with libperl, which they are on amd64 and Debian's other architectures.
> You're right, this isn't closed; it's just i386-specific.
I was surprised to hear that perl modules were linked to libperl on !i386
(which would be the correct thing to do, I just didn't think the standard
perl build rules handled this). So I checked, and on my amd64 system:
$ ldd /usr/lib/ perl/5. 8.8/auto/ POSIX/POSIX. so 1000) 2000) ld-linux- x86-64. so.2 (0x000055555555 4000)
libm.so.6 => /lib/libm.so.6 (0x00002b02d445
libc.so.6 => /lib/libc.so.6 (0x00002b02d46d
/lib64/
$
So sure enough, I tried the test case from /bugs.launchpad .net/ubuntu/ +source/ openldap2. 3/+bug/ 90812>, and:
<https:/
# slapd perl/5. 8/auto/ POSIX/POSIX. so' for module POSIX: /usr/lib/ perl/5. 8/auto/ POSIX/POSIX. so: undefined symbol: PL_sig_name at /usr/lib/ perl/5. 8/XSLoader. pm line 70. perl/5. 8/POSIX. pm line 26 SampleLDAP. pm line 2. SampleLDAP. pm line 2.
Error Can't load '/usr/lib/
at /usr/lib/
Compilation failed in require at /etc/perl/
BEGIN failed--compilation aborted at /etc/perl/
Compilation failed in require at (eval 2) line 1.
BEGIN failed--compilation aborted at (eval 2) line 1.
#
I have no idea if this is a regression from previous perl builds, but it
looks to me like it's a general problem at this point.
-- www.debian. org/
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://
<email address hidden> <email address hidden>