caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Dynlink native library for ocaml-mingw32
@ 2010-08-25  2:57 Paul Steckler
  2010-08-25  6:50 ` [Caml-list] " David Allsopp
  0 siblings, 1 reply; 2+ messages in thread
From: Paul Steckler @ 2010-08-25  2:57 UTC (permalink / raw)
  To: caml-list

I have a Fedora 11 instance where I've installed
mingw32-ocaml-3.11.0-0.16.beta1.fc11.noarch to create Windows
executables.  I've mentioned issues with the native-code threading
libraries in that distribution before on this list.

Recently, I added calls into the dynlink library in my code (see my
recent posts about dynlink-induced/revealed segfaults -- I'll discuss
progress in resolving these in a future post).  When compiling with
ocaml-mingw32, I first had to change the dynlink/META file to look for
dynlink.cmxa to link against native code.  The link failed, though,
because options -Wl and -E were being passed to FlexDLL.  I have
mingw32-flexdll-0.11-9.fc11.i386 installed.

The file Makefile.config, found in the ocaml-mingw32 library
directory, contains the line:

  NATDYNLINKOPTS=-Wl,-E

which options seem to get baked into dynlink.cmxa.  I hacked the
library file to change those options to spaces, and the link proceeds
normally.  That works, but my sleep patterns have become disturbed.
:-)

Is this issue particular to my installation, or should dynlink.cmxa
have been built not to invoke these flags?  Why does FlexDLL get
invoked as the linker, rather than i686-pc-mingw32-ld (which would
have accepted those flags)?

-- Paul


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

* RE: [Caml-list] Dynlink native library for ocaml-mingw32
  2010-08-25  2:57 Dynlink native library for ocaml-mingw32 Paul Steckler
@ 2010-08-25  6:50 ` David Allsopp
  0 siblings, 0 replies; 2+ messages in thread
From: David Allsopp @ 2010-08-25  6:50 UTC (permalink / raw)
  To: Paul Steckler, caml-list

Paul Steckler wrote:
> I have a Fedora 11 instance where I've installed
> mingw32-ocaml-3.11.0-0.16.beta1.fc11.noarch to create Windows
> executables.  I've mentioned issues with the native-code threading
> libraries in that distribution before on this list.
> 
> Recently, I added calls into the dynlink library in my code (see my
> recent posts about dynlink-induced/revealed segfaults -- I'll discuss
> progress in resolving these in a future post).  When compiling with
> ocaml-mingw32, I first had to change the dynlink/META file to look for
> dynlink.cmxa to link against native code.  The link failed, though,
> because options -Wl and -E were being passed to FlexDLL.  I have
> mingw32-flexdll-0.11-9.fc11.i386 installed.
> 
> The file Makefile.config, found in the ocaml-mingw32 library
> directory, contains the line:
> 
>   NATDYNLINKOPTS=-Wl,-E

Makefile.config on an actual 3.11 MinGW installation does not contain NATDYNLINKOPTS, so this is incorrect. That's technically also a linker option wrapped in a gcc option...

> which options seem to get baked into dynlink.cmxa.  I hacked the
> library file to change those options to spaces, and the link proceeds
> normally.  That works, but my sleep patterns have become disturbed.
> :-)
> 
> Is this issue particular to my installation, or should dynlink.cmxa
> have been built not to invoke these flags?  Why does FlexDLL get
> invoked as the linker, rather than i686-pc-mingw32-ld (which would
> have accepted those flags)?

All linking is done using flexlink for Windows distributions of ocaml - in a highly simplified nutshell, flexlink builds some wrapper files which implement dynamic linking (not to be confused with dynlink - flexlink does this for all Windows executables) and then calls the correct compiler and linker to produce the final program/library. You can either use ocamlopt -verbose to see the flexlink call and then run it manually or use ocamlopt -verbose -ccopt -v to have flexlink display the programs it's invoking. Alain's website (http://alain.frisch.fr/flexdll.html) has more info on how it works...


David

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

end of thread, other threads:[~2010-08-25  6:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-25  2:57 Dynlink native library for ocaml-mingw32 Paul Steckler
2010-08-25  6:50 ` [Caml-list] " David Allsopp

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