[Bug 1054] New: OCL's OS::InitFunction not executed on Mint 15

http://bugs.orocos.org/show_bug.cgi?id=1054

Summary: OCL's OS::InitFunction not executed on Mint 15
Product: OCL
Version: 1.12.1
Platform: All
OS/Version: GNU/Linux
Status: NEW
Severity: major
Priority: P3
Component: Other
AssignedTo: orocos-dev [..] ...
ReportedBy: kiwi [dot] net [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

The loadOCL() function does not execute when the orocos-ocl-common library is
loaded in Mint 15 (64-bit). The same function does execute in Ubuntu 10.04 and
OS X 10.8. The net effect of this is that the OCL types aren't loaded, which
causes subsequent transport problems.

Mint 15, 64-bit, gcc/g++ 4.7.3, 3.8.0-27-generic kernel
Ubuntu 10.04, 32-bit, gcc/g++ 4.4.3, 2.6.31-11-rt kernel

Changes in ocl/ocltoolkit.cpp
{{{
int loadOCL()
{
RTT::Logger::log() << RTT::Logger::Info << "Load Tool OCL" <<
RTT::Logger::endl;

//RTT::TypeInfoRepository::Instance()->addType( new
StdVectorTemplateTypeInfo<std::string>("stringList") );
RTT::TypeInfoRepository::Instance()->addType( new
StdVectorTemplateTypeInfo<std::string,true>("strings") );
}}}

e.g. on Ubuntu 10.04
{{{
0.000 [ Info ][Logger] Using real-time logging
0.001 [ Debug ][Logger] MainThread started.
0.001 [ Debug ][Logger] Starting StartStopManager.
0.001 [ Info ][Toolkit] Loading Tool RealTime.
0.001 [ Debug ][Toolkit] Registered Type 'int' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'uint' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'double' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'bool' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'void' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'PropertyBag' to the Orocos Type
System.
0.001 [ Debug ][Toolkit] Registered Type 'float' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'char' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'array' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'string' to the Orocos Type System.
0.001 [ Info ][Logger] Load Tool OCL
0.001 [ Debug ][Logger] Registered Type 'strings' to the Orocos Type System.
0.001 [ Debug ][Logger] Registered Type 'bools' to the Orocos Type System.
0.001 [ Debug ][Logger] Registered Type 'ints' to the Orocos Type System.
0.001 [ Info ][Toolkit] Loading Transport CorbaRealtime.
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for PropertyBag
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for array
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for bool
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for double
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for float
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for int
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for string
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for uint
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for void
0.002 [ Debug ][ExecutionEngine] Creating ExecutionEngine for Deployer
}}}
and
{{{
0.050 [ Debug ][DeploymentComponent::import] Importing liborocos-ocl-common
0.050 [ Debug ][DeploymentComponent::loadLibrary] Succesfully loaded
orocos-ocl-common
0.050 [ Info ][DeploymentComponent::loadLibrary] Loaded multi component
library 'liborocos-ocl-common-gnulinux.so'
0.050 [ Debug ][DeploymentComponent::loadLibrary] Components: CORBA
ControlTaskProxy IOR IORFile OCL::HMIConsoleOutput OCL::logging::Appender
OCL::logging::FileAppender OCL::logging::GenerationalFileAppender
OCL::logging::LoggingService OCL::logging::Ostr
eamAppender OCL::logging::RollingFileAppender robot::BasicCoordinator
robot::CartPositionTrackingError robot::ComponentSequencer
robot::ComponentSequencerWithState robot::LoggingTaskContext
robot::MonitorCPUUsage robot::PositionTrackingError robot::Produce
Heartbeat robot::SystemDiagnostics
0.050 [ Debug ][DeploymentComponent::loadLibrary]
/ssc/users/sroderic/next/install/lib/liborocos-ocl-common-gnulinux.so.1.8:
undefined symbol: createComponent
0.050 [ Debug ][DeploymentComponent::loadLibrary]
/ssc/users/sroderic/next/install/lib/liborocos-ocl-common-gnulinux.so.1.8:
undefined symbol: loadRTTPlugin
0.050 [ Debug ][DeploymentComponent::loadLibrary]
/ssc/users/sroderic/next/install/lib/liborocos-ocl-common-gnulinux.so.1.8:
undefined symbol: getTimeServiceFactoryMap
0.050 [ Info ][DeploymentComponent::loadLibrary] Storing orocos-ocl-common
}}}

but on Mint 15
{{{
0.000 [ Info ][Logger] Using real-time logging
0.000 [ Debug ][Logger] MainThread started.
0.000 [ Debug ][Logger] Starting StartStopManager.
0.000 [ Info ][Toolkit] Loading Tool RealTime.
0.001 [ Debug ][Toolkit] Registered Type 'int' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'uint' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'double' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'bool' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'void' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'PropertyBag' to the Orocos Type
System.
0.001 [ Debug ][Toolkit] Registered Type 'float' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'char' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'array' to the Orocos Type System.
0.001 [ Debug ][Toolkit] Registered Type 'string' to the Orocos Type System.
0.001 [ Info ][Toolkit] Loading Transport CorbaRealtime.
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for PropertyBag
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for array
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for bool
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for double
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for float
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for int
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for string
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for uint
0.001 [ Info ][Toolkit] Registered new 'CORBA' transport for void
0.002 [ Debug ][ExecutionEngine] Creating ExecutionEngine for Deployer
}}}
and
{{{
0.045 [ Debug ][DeploymentComponent::import] Importing liborocos-ocl-common
0.047 [ Debug ][ReportRobotAppender] Succesfully loaded orocos-ocl-common
0.047 [ Info ][ReportRobotAppender] Loaded multi component library
'liborocos-ocl-common-gnulinux.so'
0.047 [ Debug ][ReportRobotAppender] Components: CORBA ControlTaskProxy IOR
IORFile OCL::HMIConsoleOutput OCL::logging::Appender OCL::logging::FileAppender
OCL::logging::GenerationalFileAppender OCL::logging::LoggingService
OCL::logging::OstreamAppender O
CL::logging::RollingFileAppender robot::BasicCoordinator
robot::CartPositionTrackingError robot::ComponentSequencer
robot::ComponentSequencerWithState robot::LoggingTaskContext
robot::MonitorCPUUsage robot::PositionTrackingError robot::ProduceHeartbeat rob
ot::SystemDiagnostics
0.047 [ Debug ][ReportRobotAppender]
/ssc/users/sroderic/next/install/lib/liborocos-ocl-common-gnulinux.so:
undefined symbol: createComponent
0.047 [ Debug ][ReportRobotAppender]
/ssc/users/sroderic/next/install/lib/liborocos-ocl-common-gnulinux.so:
undefined symbol: loadRTTPlugin
0.047 [ Debug ][ReportRobotAppender]
/ssc/users/sroderic/next/install/lib/liborocos-ocl-common-gnulinux.so:
undefined symbol: getTimeServiceFactoryMap
0.047 [ Info ][ReportRobotAppender] Storing orocos-ocl-common
}}}
While the orocos-ocl-common library is loaded, RTT does not appear to execute
the loadOCL() function.

Ruben Smits's picture

[Bug 1054] OCL's OS::InitFunction not executed on Mint 15

We'll probably need a similar fix for the rttlua executables.

Ruben

On Fri, Feb 21, 2014 at 12:37 AM, S Roderick <kiwi [dot] net [..] ...> wrote:
> http://bugs.orocos.org/show_bug.cgi?id=1054
>