Mantis - pm_tt2
Viewing Issue Advanced Details
3766 packaging minor have not tried 2009-07-13 15:18 2010-03-31 22:19
dam  
bonivart  
normal  
closed  
fixed  
none    
none  
0003766: XS modules should be compiled with -lperl
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> [^]
Issue History
2009-07-13 15:18 dam New Issue
2009-07-21 15:55 bonivart Status new => assigned
2009-07-21 15:55 bonivart Assigned To => bonivart
2009-08-05 17:03 bonivart Note Added: 0006510
2009-08-05 17:25 dam Note Added: 0006512
2009-08-06 13:32 dam Note Added: 0006520
2009-08-10 16:35 bonivart Note Added: 0006547
2009-08-10 16:37 bonivart Note Added: 0006548
2009-08-10 17:59 dam Note Added: 0006550
2010-03-31 22:15 bonivart Note Added: 0007787
2010-03-31 22:18 dam Note Added: 0007788
2010-03-31 22:19 dam Status assigned => closed
2010-03-31 22:19 dam Resolution open => fixed

Notes
(0006510)
bonivart   
2009-08-05 17:03   
How can I test for this in a simple way?
(0006512)
dam   
2009-08-05 17:25   
I'll give my special Perl backend build triggering the error a try. It may be visible by inspecting the linking directly, will look into that also.
(0006520)
dam   
2009-08-06 13:32   
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?
(0006547)
bonivart   
2009-08-10 16:35   
I'm getting other bug reports about Perl being broken since this debacle with BDB. How important is this fix? Could I release the packages in testing that are compiled with BDB47? They fix this bug: http://www.opencsw.org/mantis/view.php?id=3804. [^] Also, I want to release another SpamAssassin package using cswclassutils but it can't be compiled against current Perl probably due to the same reason as bug 0003804.
(0006548)
bonivart   
2009-08-10 16:37   
I mean, how important is it to quickly fix this bug? It's been like this for a long time and you're the only one who have noticed. Maybe we should in the interim release a new Perl to fix other broken packages depending on it? Then we can resume this bug.
(0006550)
dam   
2009-08-10 17:59   
The fix is not that important. Please release the rebuild as you see fit.
(0007787)
bonivart   
2010-03-31 22:15   
Hmm, just wondering about the status of this bug now when we have 5.10.1..?
(0007788)
dam   
2010-03-31 22:18   
With the change in the cpan-category to link with -lperl and the 'ldd -r' check in checkpkg this should be fixed now :-)