[Bug 960048] Can't load '/usr/lib64/perl5/auto/Fcntl/Fcntl.so' - undefined symbols

bugzilla at redhat.com bugzilla at redhat.com
Tue May 7 12:08:18 UTC 2013


Product: Fedora
https://bugzilla.redhat.com/show_bug.cgi?id=960048

--- Comment #3 from Petr Pisar <ppisar at redhat.com> ---
There is excellent analysis of the problem in Debian bug tracking system
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327585#50>. It's as I
suspected:

The libtool dynamic loader lt_dlopen() used by openldap does not allow loading
modules from modules and that is exactly what openldap does. slapd loads
back_perl module that pulls in libperl symbols, but libperl loads Fork.so
module that is not linked against libperl (for a good reason, to prevent from
double-linking). And because ld_dlopen prohibits exporting resolved symbols
globally, i.e. the libperl symbols, Fork.so, or any XS Perl module, will not
see libperl symbols.

There is no easy fix:

(1) One can change openldap to use dlopen() instead of lt_dlopen().

(2) One can change libtool to export all symbols globally.

(3) One can start linking all Perl XS modules against libperl.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=Ow2aD7Vmi7&a=cc_unsubscribe



More information about the perl-devel mailing list