Discussion:
toc problems
Fabrice C
2009-02-18 14:31:04 UTC
Permalink
I have problem to link my application with mico.

I'm on this platform :
os : linux SLES 10
cpu : PowerPC 64 bits ppc64

and mico 2.3.13

I check with 2 compilers to generate mico : GNU and IBM


- I use the GNU compiler to generate mico (c++ and gcc with option
-mminimal-toc).
No problem to generate mico.
I link my application to mico and I have this error :

ld:/workdev/MTS/fabrice/MICO/mico-2.3.13/mico/lib/libmico2.3.13.a(orb.o)(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E]+0x50):
sibling call optimization to
`_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E'
does not allow automatic multiple TOCs; recompile with -mminimal-toc or
-fno-optimize-sibling-calls, or make
`_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E'
extern



- I use the IBM compiler to generate mico (xlc++_r and xlc with option
-qminimaltoc).
No problem to generate mico.
I link my application to mico and I have this error :

libmico2.3.13.a(ir.o):(.toc1+0x11e8): undefined reference to
`POA_CORBA::ExtAbstractInterfaceDef::_get_interface()'
libmico2.3.13.a(ir.o):(.toc1+0x12a8): undefined reference to
`POA_CORBA::Container::~Container()'
...
...

I check many case to generate mico but I have always a problem to link with
it

Thanks a lot for you help
Fabrice C
2009-02-24 16:13:22 UTC
Permalink
To link, if I add the library micoir, I successfuly link my application and
also exemples inside the pacakge mico.

I don't understand ... is a particularity of my architecture : xlc compiler
on linux/ppc64
because in each Makefile, there is only the $(LIBMICO)

For exemple, in the directory daemon, I show an extract of the Makefile :

43 micod: $(MICODOBJS) ../orb/$(LIBMICO)
44 $(CXX) $(CXXFLAGS) $(LDFLAGS) $(MICODOBJS) $(LDLIBS) -o $@
45 $(POSTLD) $@

and me, I need to modify the Makefile like this :

43 micod: $(MICODOBJS) ../orb/$(LIBMICO) ../ir/$(LIBMICOIR)
44 $(CXX) $(CXXFLAGS) $(LDFLAGS) $(MICODOBJS) $(LDLIBS) -o $@
45 $(POSTLD) $@

thanks for your advice

Continue reading on narkive:
Loading...