[bug-notifications] [perl 0003766]: XS modules should be compiled with -lperl

Mantis Bug Tracker noreply at opencsw.org
Thu Aug 6 13:32:22 CEST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://www.opencsw.org/mantis/view.php?id=3766 
====================================================================== 
Reported By:                dam
Assigned To:                bonivart
====================================================================== 
Project:                    perl
Issue ID:                   3766
Category:                   packaging
Reproducibility:            have not tried
Severity:                   minor
Priority:                   normal
Status:                     assigned
====================================================================== 
Date Submitted:             2009-07-13 15:18 CEST
Last Modified:              2009-08-06 13:32 CEST
====================================================================== 
Summary:                    XS modules should be compiled with -lperl
Description: 
The XS modules provided by Perl should be compiled against libperl.
Otherwise symbols from Perl itself can't be found when dlopening libperl
and the xs-modules. This is described in detail at
  <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327585#85>
====================================================================== 

---------------------------------------------------------------------- 
 (0006520) dam (reporter) - 2009-08-06 13:32
 http://www.opencsw.org/mantis/view.php?id=3766#c6520 
---------------------------------------------------------------------- 
I inspected this closely and it has the same problem as before. The issue
is that the modules must be linked to libperl.so, similar to the perl
binary itself. The perl binary looks like this:

sol10u4-fusion# dump -Lv /opt/csw/bin/perl

/opt/csw/bin/perl:

  **** DYNAMIC SECTION INFORMATION ****
.dynamic:
[INDEX] Tag         Value
[1]     NEEDED          libperl.so.5.8.8
[2]     NEEDED          libsocket.so.1
[3]     NEEDED          libnsl.so.1
[4]     NEEDED          libdb-4.7.so
[5]     NEEDED          libdl.so.1
[6]     NEEDED          libm.so.1
[7]     NEEDED          libpthread.so.1
[8]     NEEDED          libc.so.1
[9]     NEEDED          libperl.so     <-- Links to libperl.so
[10]    INIT            0x8051de8
[11]    FINI            0x8051e04
[12]    RUNPATH        
/opt/csw/lib/$ISALIST:/opt/csw/lib:/opt/csw/lib/perl/5.8.8/CORE
[13]    RPATH          
/opt/csw/lib/$ISALIST:/opt/csw/lib:/opt/csw/lib/perl/5.8.8/CORE
[14]    HASH            0x8050118
[15]    STRTAB          0x8050838
...


This is how the Perl module I use looks like right now:


sol10u4-fusion# dump -Lv /opt/csw/lib/perl/5.8.8/auto/POSIX/POSIX.so

/opt/csw/lib/perl/5.8.8/auto/POSIX/POSIX.so:

  **** DYNAMIC SECTION INFORMATION ****
.dynamic:
[INDEX] Tag         Value
[1]     NEEDED          libm.so.1   <-- Does not link to libperl.so
inducing missing symbols due to RTLD
[2]     INIT            0x15ec4
[3]     FINI            0x15ee0
[4]     RUNPATH         /opt/csw/lib/$ISALIST:/opt/csw/lib
[5]     RPATH           /opt/csw/lib/$ISALIST:/opt/csw/lib
[6]     HASH            0xc4


Somehow the -lperl is still missing when compiling the modules. Maybe this
must be added to LDFLAGS?




More information about the bug-notifications mailing list