Browse thread
[Caml-list] Byte code and dynamic linking of C libraries
-
Yaron Minsky
- Nicolas Cannasse
- Markus Mottl
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Nicolas Cannasse <warplayer@f...> |
| Subject: | Re: [Caml-list] Byte code and dynamic linking of C libraries |
> I've got some code that dynamically links in a C library. The code works > just fine when I compile to native code, but blows up when I compile to > bytecode. Just to be clear, the dynamic linking I'm doing happens > entirely on the C side: I've got a c library that is linked in > statically, and the dlopen and dlclose calls all happen within that C > library. When I try this trick in bytecode, I get a segfault. > > So, any ideas as to what I need to do to make dynamic linking and byte > code to play nicely together? Is the C library you're dynlinking is using Caml API ? I got such problems, because when linking (under windows) to ocamlrun.lib, your C dll is referencing ocamlrun.dll wich is the caml api library for the bytecode interpreter (before it was ocamlrun.exe but now it's a separate dll so the custom mode works well since both the exe and the dll are using the same code). The solution I know is to link staticly all the C librairies in native code. One other is that your dynlinked C library redirects its calls to the Caml API through the C library which is loading it. Regards, 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