Skip to content

FlexDLL 0.43

Latest
Compare
Choose a tag to compare
@dra27 dra27 released this 08 Jun 10:42
· 30 commits to master since this release

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 by flexlink. For MSYS2, this actually means cygpath is never called, and the performance of flexlink 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 and flexlink -version report version information, as ocamlc and ocamlopt 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.