MantisBT - CLAM (C++ Library for Audio and Music) - CLAM
View Issue Details
0000021CLAMInfrastructure: Build Systempublic2011-09-19 07:482011-09-21 11:08
dgarcia 
 
normalmajoralways
resolvedfixed 
Intel 32Ubuntu Linuxoneiric
 
 
0000021: Plugins do not load in Ubuntu Oneiric
After upgrading form Ubuntu natty to Ubuntu oneiric and recompiling, plugins are not loaded at all.

For example:

$ ldd libclam_sndfile_plugin.so
        linux-gate.so.1 => (0x006e9000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00110000)
        /lib/ld-linux.so.2 (0x00596000)

So, no trace of libclam_sndfile.so and its dependencies.

No tags attached.
Issue History
2011-09-19 07:48dgarciaNew Issue
2011-09-19 07:48dgarciaStatusnew => assigned
2011-09-19 07:48dgarciaAssigned To => dgarcia
2011-09-19 07:55dgarciaNote Added: 0000025
2011-09-19 07:58dgarciaNote Added: 0000026
2011-09-19 08:30dgarciaAssigned Todgarcia =>
2011-09-19 08:30dgarciaStatusassigned => acknowledged
2011-09-21 11:08svnCheckin
2011-09-21 11:08svnNote Added: 0000029
2011-09-21 11:08svnStatusacknowledged => resolved
2011-09-21 11:08svnResolutionopen => fixed

Notes
(0000025)
dgarcia   
2011-09-19 07:55   
According to https://lists.ubuntu.com/archives/ubuntu-devel/2010-November/031991.html, [^] now gcc pass the --as-needed option to the linker by default. Because the plugin is just an empty library pulling the actual library with no symbol reference, that option just breaks the whole plugin loading.

There is the --no-as-needed option to fix that and it acts like a switch in the command line so the option sequence '-la --no-as-needed -lb --as-needed -lc' will force the link of libb, while liba and libc is pulled just if we reference symbols. Due to this ordering dependency, and because different platforms we should be carefull when introducing it.
(0000026)
dgarcia   
2011-09-19 07:58   
Quick workaround: overwrite the *_plugin.so files with links to the actual libraries.
(0000029)
svn   
2011-09-21 11:08   
Changeset clam [15190] by dgarcia, 2011-09-21 11:08:03 -0700 (Wed, 21 Sep 2011)
 * Added --no-as-needed option to link plugins, Fixes 0000021
 * May break other platforms ?\194?\172?\194?\172 (or maybe fixes 0000018 in windows but have to try)
U trunk/CLAM/scons/sconstools/clam.py