Version française
Home     About     Download     Resources     Contact us    
Browse thread
MacOS (darwin) shared library creation
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: car@r...
Subject: MacOS (darwin) shared library creation
With the 3.08 version of O'Caml, our project was able to create a MacOS
X (darwin) shared library (dylib, not a bundle), by linking a mixture of
O'Caml code, C object code, and all of the supporting O'Caml libraries.
This allowed the users of our system to simply link to this one library
to build a C application that uses our library's C API.  To do this, we
linked in the O'Caml .a libraries and libasmrun.a.

 

With 3.09.1 this no longer works.  The compiler complains that
libasmrun.a has common symbols, which are incompatible with the creation
of a dylib.  I took a look at the configure script for ocaml 3.09.1 and
see that for MacOS, the -fno-common flag is commented out of the
configuration.

 

Is there a reason -fno-common was commented out?

 

Even if I fix this, I will eventually run into difficulties because we
would have to require users of our C API to rebuild their OCaml with
this change.  Also, we are planning to use GODI to distribute our
package, and can't rely on the no-common version of OCaml being used to
build our package.

 

Any suggestions?

 

Chris Rath

AT&T Labs Research

car@research.att.com