[Bug 1054] OCL's OS::InitFunction not executed on Mint 15
S Roderick <[email protected]> Fri, 21 Feb 2014 00:37:49 +0100
| Newsgroups | gmane.science.robotics.orocos.devel |
|---|---|
| Message-ID | <[email protected]> |
http://bugs.orocos.org/show_bug.cgi?id=1054 --- Comment #2 from S Roderick <[email protected]> 2014-02-21 00:37:48 CET --- Created attachment 867 --> http://bugs.orocos.org/attachment.cgi?id=867 bin: Add link definitions to restore pre-4.6 default link behaviour This is partly a sequencing issue, and partly due to a shortcut taken in OCL. The deployer sequence is {{{ main() os_init() // this runs all OS::InitFunction's registered with the RTT::StartStopManager <E2><80><A6> DeploymentComponent::kickStart() // this actually processes the XML file contents and loads/processes any libraries }}} The only way that an OS::InitFunction will be run in os_init() is if the corresponding library is linked into the deployer; loading it via an XML import function is too late, as the StartStopManager has already been run. In Ubuntu 10.04 and OS X 10.8 the orocos-ocl-common library is a link dependency of the deployer executables; in Mint 15 it is not. Hence the loadOCL() function isn't available when os_init() is executed, and so the "cheat" used in OCL to load the types into the RTT type registry does not work (it's a cheat as it doesn't create a full plugin/typekit, which avoids this issue). In all O/S's the deployer executables are linked against the orocos-ocl-common library, it simply appears to be dropped from the resultant dependencies (as shown by ldd) in Mint 15. This is a known issue. Looks like gcc >=4.6 default behaviour has changed: http://stackoverflow.com/questions/11631161/force-to-link-against-unused-shared-library http://www.bnikolic.co.uk/blog/gnu-ld-as-needed.html https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed The attached patch fixes the issue, and works in both Mint 15 w/ gcc 4.7 and Ubuntu 10.04 w/ gcc 4.4 -- Configure bugmail: http://bugs.orocos.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. -- Orocos-Dev mailing list [email protected] http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev