caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Problem building custom toplevel
@ 2002-07-22 14:08 Rolf Wester
  2002-07-24  8:28 ` Alessandro Baretta
  2002-07-25  9:16 ` Xavier Leroy
  0 siblings, 2 replies; 3+ messages in thread
From: Rolf Wester @ 2002-07-22 14:08 UTC (permalink / raw)
  To: caml-list

Hi,

I have a c++-library compiled with the icc-compiler, a c-interface to this 
library (cinterface.h and cinterface.cpp) and stubs files generated using 
camlidl (ocaml_opt.idl, ocaml_opt_stubs.cpp, ocaml_opt.ml, ocaml_opt.mli). 
I try to build a custom toplevel with:

	ocamlmktop -custom -thread unix.cma str.cma bigarray.cma nums.cma \
                                                   threads.cm graphics.cma \
		   ../cinterface/cinterface.o ocaml_opt_stubs.o ocaml_opt.cmo  \
		   /usr/lib/libexpat.a \
		   /usr/lib/libdfftw.a \
                   /opt/intel/compiler60/ia32/lib/libcxa.so \
	            /lib/ld-linux.so \
		   ../lib/libopt.a \
		    -cclib -ldl -cclib -lpthread -cclib -lutil -cclib -lm -cclib -lc \
		   -o ocaml_opt 

but get an almost endless list of undefined references (almost 6000 lines of 
output). Here some examples:
../cinterface/cinterface.o(.text+0x1a): undefined reference to `operator
           new[](unsigned)'
../cinterface/cinterface.o(.text+0xb10): undefined reference to  
         `std::_String_base::_Xran() const'
../cinterface/cinterface.o: In function          
           `std::out_of_range::out_of_range(std::basic_string<char,
            std::char_traits<char>, std::allocator<char> > const&)': 
oe_m2.o(.gnu.linkonce.t._ZNSt6vectorIS_IdSaIdEESaIS1_EE9_Insert_nEPS1_jRKS1_+0x95e):
          undefined reference to `__cxa_end_catch'

oe_m2.o is in libopt.a.

I don't have any idea how to solve this problem. I would be very appreciative 
for help. 

Thanks in advance

Rolf Wester

P.S.: If icc is the problem, compiling libopt.a with g++ would be no option. 
But it should work somehow, I have built a shared library for use with Python 
and that one works.
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Problem building custom toplevel
  2002-07-22 14:08 [Caml-list] Problem building custom toplevel Rolf Wester
@ 2002-07-24  8:28 ` Alessandro Baretta
  2002-07-25  9:16 ` Xavier Leroy
  1 sibling, 0 replies; 3+ messages in thread
From: Alessandro Baretta @ 2002-07-24  8:28 UTC (permalink / raw)
  To: rolf.wester; +Cc: caml-list

Rolf Wester wrote:
> Hi,
> 
> I have a c++-library compiled with the icc-compiler, a c-interface to this 
> library (cinterface.h and cinterface.cpp) and stubs files generated using 
> camlidl (ocaml_opt.idl, ocaml_opt_stubs.cpp, ocaml_opt.ml, ocaml_opt.mli). 
> I try to build a custom toplevel with:
> 
> 	ocamlmktop -custom -thread unix.cma str.cma bigarray.cma nums.cma \
>                                                    threads.cm graphics.cma \
> 		   ../cinterface/cinterface.o ocaml_opt_stubs.o ocaml_opt.cmo  \
> 		   /usr/lib/libexpat.a \
> 		   /usr/lib/libdfftw.a \
>                    /opt/intel/compiler60/ia32/lib/libcxa.so \
> 	            /lib/ld-linux.so \
> 		   ../lib/libopt.a \
> 		    -cclib -ldl -cclib -lpthread -cclib -lutil -cclib -lm -cclib -lc \
> 		   -o ocaml_opt 
> ...

Apparently no Jedi Camler has answered your question yet, so 
I'll give you my opinion FWIW. I believe you are linking the 
files in the wrong order. All references in a given file 
provided as input to the ocaml compiler during the linking 
phase must be resolved in the files *preceding* it on the 
command line. The fact that the linker is unable to resolve 
such "banal" references as operator new probably indicates 
that libcxa.so should be placed towards the beginning of the 
cammand line. Anyhow, try to work out a dependency DAG 
between the different linking modules, in order to discover 
precisely what conflict(s) is(are) causing the above 
mentioned problem.

I hope this helps. Otherwise, you'll have to wait for one of 
the Jedis to come along and solve the problem.

Alex

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Problem building custom toplevel
  2002-07-22 14:08 [Caml-list] Problem building custom toplevel Rolf Wester
  2002-07-24  8:28 ` Alessandro Baretta
@ 2002-07-25  9:16 ` Xavier Leroy
  1 sibling, 0 replies; 3+ messages in thread
From: Xavier Leroy @ 2002-07-25  9:16 UTC (permalink / raw)
  To: Rolf Wester; +Cc: caml-list

> I have a c++-library compiled with the icc-compiler, a c-interface to this 
> library (cinterface.h and cinterface.cpp) and stubs files generated using 
> camlidl (ocaml_opt.idl, ocaml_opt_stubs.cpp, ocaml_opt.ml, ocaml_opt.mli). 
> I try to build a custom toplevel with:
> [...]
> but get an almost endless list of undefined references (almost 6000 lines of 
> output). Here some examples:

I avoid C++ as much as I can, so this is just a wild guess.  Could it
be that you're calling the wrong linker?  ocamlmltop -custom performs
its linking stage by calling the C compiler that was used to build
OCaml, usually cc or gcc.  (You can see exactly how the linker is
called by adding the flag -verbose.)  Maybe you need to use icc as the
linker, or pass some magic flag to it telling that you're using C++
libraries.  You can do that with the -cc flag, e.g.

        ocamlmktop -cc "icc <whatever options>" -custom ...

Good luck,

- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-07-25  9:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-22 14:08 [Caml-list] Problem building custom toplevel Rolf Wester
2002-07-24  8:28 ` Alessandro Baretta
2002-07-25  9:16 ` Xavier Leroy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).