* 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