Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Dynamic Linking Bug
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Warp <warplayer@f...>
Subject: [Caml-list] Dynamic Linking Bug
Hi all.
Here's some bug
It comes when trying to Dynlink a CMA build with flags :
> -cclib -lmylib -dllib -lmylib
(these allow static and dynamic linking)

When I compile and run a program with
> ocamlc mylib.cma myprog.ml
it works.

But when I use the following into myprog.ml ( and compile it without the
CMA )
> Dynlink.loadfile "mylib.cma"
it prints the Win32 error message "Dynamic library not found", which is
quite annoying because the name of the DLL is missing. Seems like the
dynlink_open_lib should fail with more informations (at least under Win32 :
caml_dlerror does not include the name of the module ).
So i did make it fail with the name of the library Dynlink is trying to load
, and it is "-lwin32.dll" ( seems like Dynlink doesn't like -l notation ).

Another problem with dynamic linking is that it can't be used with "-custom"
mode. When you write a DLL, you need to use caml functions to register
roots, allocations, etc... To enable access to theses functions, you need to
link with ocamlrun.lib which contains links to ocamlrun exported functions.
So when your runtime is not ocamlrun, the calls to caml functions crash. An
issue would be to have a ocamlrun.lib which links to the loading runtime. I
would be glad to know if the OCaml Team is working on that problem, or is it
"case closed" ?

Thanks

Nicolas Cannasse

-------------------
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