CIAO on QNX 6.3.2

Hi,

is it possible to install CIAO 6.2 component middleware on QNX 6.3.2? I don’t see anything about this or any attempt to ports CIAO to QNX 6.x OS. In https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/CIAO/CIAO-INSTALL.html?revision=56456 there is only references to support QNX 2.0.

Thanks
Ricardo

Should work, as CIAO is designed to build on Posix operating systems, and QNX is a certified Posix OS: http://get.posixcertified.ieee.org/display_product.tpl?CALLER=cert_prodlist.tpl&_cp_id=6693.

Are you encountering a specific problem?

Hi,

After some time, now i am trying to compile/install CIAO 0.6.4 to QNX 6.3.2 (qcc -V3.3.5,gcc_ntox86), and i am facing a linker problem.

steps:
1- I compiled boost librares(regex and filesystem) and installed them to /usr/lib and /usr/include/boost-1_35. Here are the process:

make

./tools/jam/src/bin.qnxntox86/bjam --user-config=user-config.jam --with-regex --with-filesystem
Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(don’t panic: this is a strictly optional feature).
…patience…
…found 544 targets…
…updating 42 targets…
MkDir1 bin.v2
MkDir1 bin.v2/libs
MkDir1 bin.v2/libs/filesystem
MkDir1 bin.v2/libs/filesystem/build
MkDir1 bin.v2/libs/filesystem/build/qcc
MkDir1 bin.v2/libs/filesystem/build/qcc/release
MkDir1 bin.v2/libs/filesystem/build/qcc/release/threading-multi
qcc.compile.c++ bin.v2/libs/filesystem/build/qcc/release/threading-multi/operations.o
qcc.compile.c++ bin.v2/libs/filesystem/build/qcc/release/threading-multi/path.o
qcc.compile.c++ bin.v2/libs/filesystem/build/qcc/release/threading-multi/portability.o
qcc.compile.c++ bin.v2/libs/filesystem/build/qcc/release/threading-multi/utf8_codecvt_facet.o
MkDir1 bin.v2/libs/system
MkDir1 bin.v2/libs/system/build
MkDir1 bin.v2/libs/system/build/qcc
MkDir1 bin.v2/libs/system/build/qcc/release
MkDir1 bin.v2/libs/system/build/qcc/release/threading-multi
qcc.compile.c++ bin.v2/libs/system/build/qcc/release/threading-multi/error_code.o
qcc.link.dll bin.v2/libs/system/build/qcc/release/threading-multi/libboost_system-mt-1_35.so.1.35.0
qcc.link.dll bin.v2/libs/filesystem/build/qcc/release/threading-multi/libboost_filesystem-mt-1_35.so.1.35.0
MkDir1 bin.v2/libs/regex
MkDir1 bin.v2/libs/regex/build
MkDir1 bin.v2/libs/regex/build/qcc
MkDir1 bin.v2/libs/regex/build/qcc/release
MkDir1 bin.v2/libs/regex/build/qcc/release/threading-multi
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/c_regex_traits.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/cpp_regex_traits.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/cregex.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/fileiter.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/icu.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/instances.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/posix_api.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/regex.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/regex_debug.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/regex_raw_buffer.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/regex_traits_defaults.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/static_mutex.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/w32_regex_traits.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/wc_regex_traits.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/wide_posix_api.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/winstances.o
qcc.compile.c++ bin.v2/libs/regex/build/qcc/release/threading-multi/usinstances.o
qcc.link.dll bin.v2/libs/regex/build/qcc/release/threading-multi/libboost_regex-mt-1_35.so.1.35.0
…updated 42 targets…

2- In $CIAO_ROOT and using default GNUmakefile generated by mwc.pl type gnuace CIAO_TAO_DAnCE.wmc (an script to help generate makefiles), i started the compilation with ‘make’, and at some point of the compilation process an error occurs:

make[1]: Entering directory `/usr/local/ACE_wrappers/TAO/CIAO/CIDLC’

GNUmakefile: /usr/local/ACE_wrappers/TAO/CIAO/CIDLC/GNUmakefile.CIDLC MAKEFLAGS=wI /usr/qnx632/target/qnx6/usr/include

QCC -fexceptions -fno-inline -pipe -W -Wall -Wpointer-arith -I/usr/include -I/usr/local/ACE_wrappers/contrib/utility -p
ipe -W -Wall -Wpointer-arith -Y gpp -I/usr/local/ACE_wrappers -I/usr/local/ACE_wrappers/TAO/CIAO -DACE_NDEBUG -DACE
USE_RCSID=0 -DACE_HAS_EXCEPTIONS -DACE_NO_INLINE -I…/…/…/…/…/include/boost-1_35 -I…/…/…/…/…/. -I… -I…/CCF -I
…/…/…/contrib/utility -L/opt/lib -fexceptions -L/usr/local/ACE_wrappers/ace -L./ -L/usr/local/ACE_wrappers/lib -L/us
r/local/ACE_wrappers/TAO/CIAO/ciao -L. -L…/…/…/…/…/lib -L…/CCF/CCF -L…/…/…/lib -o cidlc .obj/AttributeHeaderEmi
tters.o .obj/cidlc.o .obj/CompositionEmitter.o .obj/CorbaTypeNameEmitters.o .obj/CxxNamePrinter.o .obj/DescriptorGenerat
or.o .obj/EmitterBase.o .obj/EmitterContext.o .obj/ExecImplGenerator.o .obj/ExecImplHeaderGenerator.o .obj/ExecImplSourc
eGenerator.o .obj/ExecutorMappingGenerator.o .obj/InterfaceEmitter.o .obj/Literals.o .obj/ModuleEmitter.o .obj/Operation
HeaderEmitters.o .obj/RepositoryIdGenerator.o .obj/ServantGenerator.o .obj/ServantHeaderGenerator.o .obj/ServantSourceGe
nerator.o .obj/SizeTypeCalculator.o .obj/UtilityTypeNameEmitters.o -lCIDL -lIDL3 -lIDL2 -lCodeGenerationKit -lCompilerEl
ements -lboost_regex-mt-1_35 -lboost_filesystem-mt-1_35 -lsocket -lstdc++ -lm
/usr/qnx632/host/qnx6/x86/usr/bin/i386-pc-nto-qnx6.3.0-ld: warning: bin.v2/libs/system/build/qcc/release/threading-multi
/libboost_system-mt-1_35.so.1.35.0, needed by …/…/…/…/…/lib/libboost_filesystem-mt-1_35.so, not found (try using -r
path or -rpath-link)
.obj/AttributeHeaderEmitters.o: In function __static_initialization_and_destruction_0(int, int)': .obj/AttributeHeaderEmitters.o(.text+0xf75): undefined reference to boost::system::get_system_category()’
.obj/AttributeHeaderEmitters.o(.text+0xf8e): undefined reference to boost::system::get_posix_category()' .obj/AttributeHeaderEmitters.o(.text+0xfa7): undefined reference to boost::system::get_posix_category()’
.obj/AttributeHeaderEmitters.o(.text+0xfc0): undefined reference to boost::system::get_system_category()' .obj/cidlc.o: In function __static_initialization_and_destruction_0(int, int)’:
.obj/cidlc.o(.text+0x34a1): undefined reference to boost::system::get_system_category()' .obj/cidlc.o(.text+0x34ba): undefined reference to boost::system::get_posix_category()’
.obj/cidlc.o(.text+0x34d3): undefined reference to boost::system::get_posix_category()' .obj/cidlc.o(.text+0x34ec): undefined reference to boost::system::get_system_category()’
.obj/CompositionEmitter.o: In function __static_initialization_and_destruction_0(int, int)': .obj/CompositionEmitter.o(.text+0x34b): undefined reference to boost::system::get_system_category()’
.obj/CompositionEmitter.o(.text+0x364): undefined reference to boost::system::get_posix_category()' .obj/CompositionEmitter.o(.text+0x37d): undefined reference to boost::system::get_posix_category()’
.obj/CompositionEmitter.o(.text+0x396): undefined reference to boost::system::get_system_category()' .obj/CorbaTypeNameEmitters.o: In function __static_initialization_and_destruction_0(int, int)’:
.obj/CorbaTypeNameEmitters.o(.text+0x85cf): undefined reference to boost::system::get_system_category()' .obj/CorbaTypeNameEmitters.o(.text+0x85e8): undefined reference to boost::system::get_posix_category()’
.obj/CorbaTypeNameEmitters.o(.text+0x8601): undefined reference to boost::system::get_posix_category()' .obj/CorbaTypeNameEmitters.o(.text+0x861a): undefined reference to boost::system::get_system_category()’
.obj/DescriptorGenerator.o: In function __static_initialization_and_destruction_0(int, int)': .obj/DescriptorGenerator.o(.text+0x977): undefined reference to boost::system::get_system_category()’
.obj/DescriptorGenerator.o(.text+0x990): undefined reference to boost::system::get_posix_category()' .obj/DescriptorGenerator.o(.text+0x9a9): undefined reference to boost::system::get_posix_category()’
.obj/DescriptorGenerator.o(.text+0x9c2): undefined reference to `boost::system::get_system_category()’

Questions:
Why the linker do not recognize the include directory ( -I…/…/…/…/…/include/boost-1_35 ) that has a boost files ?
If the boost libraries (libboost_system-mt-1_35.so.1.35.0 and libboost_filesystem-mt-1_35.so) are in the same diretory /usr/lib, why the linker shows the warning “not found”? Please, i do not figure out the error that is happens. I suppose that it is only necessary to indicate the correct path to the linker, bu i am not sure.

Thanks

To add paths to the linker the option is -L (el) not -I (). When specifying a library don’t specify the full path. If the library is called libboost.a use -lboost (the linker adds lib and .a).