Summary
This release fixes support for parallel usage of Dynlink
in OCaml 5.x, several issues with parsing archives correctly, and introduces support for MSYS2's mingw-w64 compilers. Cygwin32 support has been completely removed, following the retirement of the Cygwin32 distribution.
Changes
- #118, @dra27: Support MSYS2's mingw-w64 compilers as part of reducing the number of calls made to
cygpath
byflexlink
. For MSYS2, this actually meanscygpath
is never called, and the performance offlexlink
when using Cygwin's mingw-w64 compilers is considerably improved - #116, @dra27: Remove Cygwin32 support completely. The options have been removed, rather than raising errors, given that distribution has been archived
- #112, @shym: Fix parallel use of flexdll from OCaml 5 by putting error handling variables in thread-local storage
- #101, #117, @nojb: Fix handling of object names longer than 16 characters with non-Microsoft archivers
- #113, #114, @jonahbeckford: Interpret the
/alternatename
linker directive - #110, @dra27: A full hexadecade after its creation, it felt time to have
flexlink -vnum
andflexlink -version
report version information, asocamlc
andocamlopt
do! - #108, @dra27: Add
-lgcc_s
to Cygwin's link libraries (upstreams an old patch carried in Cygwin's flexdll package)
Notes
The binary release includes flexlink.exe
compiled with 32-bit mingw-w64 and MSVC objects compiled using the Windows SDK version 7.0 (Windows 7 + .NET 3.5). If you are using large COFF objects you may need to recompile flexlink with a 64-bit compiler. If you are using Visual Studio 2015 or later, the pre-compiled C object files will need to be rebuilt (make CHAINS=msvs support
or make CHAINS=msvc64 support
). We (still) hope to address both of these issues properly in the next release.
OCaml has supported bootstrap of FlexDLL since 4.03. When compiling from a Git clone, simply run git submodule update --init flexdll
or, when compiling from a tarball, unzip the FlexDLL sources into flexdll/
. OCaml 4.13 and later will then automatically build FlexDLL as part of the main build.
For OCaml 4.03-4.12, you must explictly run make [-j] flexdll
before running make [-j] world[.opt]
followed, optionally, by make flexlink.opt
. This mode guarantees C objects built with the same C compiler as OCaml and also builds flexlink
with the compiler you just built.