Skip to content

Releases: ocaml/flexdll

FlexDLL 0.43

08 Jun 10:42
Compare
Choose a tag to compare

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.

FlexDLL 0.42

19 Oct 14:28
Compare
Choose a tag to compare

Summary

This release primarily adds support for GCC's -l: syntax, to allow specific libraries to be linked statically.

Changes

  • #106, @dra27: Support -l: syntax, to allow static linking of specific libraries
  • #102, #103, @dra27: Delete objects from C files compiled by flexlink (report by @xavierleroy)
  • #72, #85, @dra27: Split multiple arguments passed with a single -Wl; completes the support for -Wl, added in #73 in 0.38

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

FlexDLL 0.41

23 Feb 09:30
Compare
Choose a tag to compare

Summary

This release fixes the build system to support semantic versioning numbers returned by ocamlopt -version (5.0.0 vs 5.00.0).

Changes

  • #98, @dra27: Eliminate Warning 6 compiling coff.ml.
  • #99, @dra27: Harden version number parsing from ocamlopt -version.

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 hope to address both of these issues properly in the next release.

OCaml has supported bootstrap of FlexDLL since 4.03 - if compiling from a Git clone, simply run git submodule update --init flexdll or if compiling from a tarball, unzip the FlexDLL sources into flexdll/ and 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.

FlexDLL 0.40

05 Jan 11:37
Compare
Choose a tag to compare

Summary

This release adds support for recent Visual Studio and Windows SDK releases along with a couple of bug fixes and new support for Extended COFF.

Changes

  • #65, @db4: Add Extended COFF support permitting MSVC objects compiled with /bigobj.
  • #80, @dra27: Silence cl's filename display for long commands as well as short ones.
  • #88, @yakobowski: Correctly handle relative search paths coming from gcc -print-search-dirs.
  • #94, @dra27: Fix parsing of COFF archives to ignore <XFGHASH> headers, allowing the Windows 11 SDK to be used.
  • #96, @dra27: Suppress volatile metadata on versions of MSVC which support it.

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 hope to address both of these issues properly in the next release.

OCaml has supported bootstrap of FlexDLL since 4.03 - if compiling from a Git clone, simply run git submodule update --init flexdll or if compiling from a tarball, unzip the FlexDLL sources into flexdll/ and 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.

FlexDLL 0.39

30 Nov 14:48
Compare
Choose a tag to compare

Summary

When used with OCaml 4.12.0, restores full support to Cygwin64 for dynamic loaded stub libraries and native dynlink.

Changes

  • #89, @dra27: Stop passing --image-base on Cygwin64. Cygwin64 DLLs should load at 0x4:00000000-0x6:00000000 if not rebased or 0x2:00000000-0x4:00000000 if rebased.
  • #90, @dra27: Fix passing NULL to flexdll_dlopen on non-Cygwin builds.

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 hope to address both of these issues properly in the next release.

OCaml has supported bootstrap of FlexDLL since 4.03 - if compiling from a Git clone, simply run git submodule update --init flexdll or if compiling from a tarball, unzip the FlexDLL sources into flexdll/ and 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.

FlexDLL 0.38

29 Jun 15:55
Compare
Choose a tag to compare

Summary

This is largely a service release, as we haven't released an update to FlexDLL in nearly three years!

Changes

  • #3, @fdopen: data symbols in import libraries are now recognised (libffi in ctypes.foreign now works)
  • #48, @dra27: C++ object files can now be linked in the mingw ports (ocaml-mccs now works)
  • #49, @kanigsson: the 64bit GNAT compiler is now supported
  • #58, @db4: -custom-crt now works again (regression since 0.34)
  • #61, @db4: amd64 debug relocations are now ignored (i386 was already ignored)
  • #64, @db4, @alainfrisch: fix problem with setting page permission during relocation of consecutive relocation addresses spanning multiple memory pages
  • #68, @bryphe, @dra27: fix incorrect calculation of maximum command length supported by MSVC
  • #73, @MSoegtropIMC: GCC-style linker options (-Wl,-…) onto the linker
  • #78, @bschommer: flexlink compiles without deprecation warnings on OCaml 4.08+
  • #81, #84, @dra27: use msvs-detect (from metastack/msvs-tools) for detecting Windows SDK or Visual Studio
  • #86, @dra27: flexlink now compiles with OCaml 3.11-4.02 again

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 hope to address both of these issues properly in the next release.

OCaml has supported bootstrap of FlexDLL since 4.03 - if compiling from a Git clone, simply run git submodule update --init flexdll or if compiling from a tarball, unzip the FlexDLL sources into flexdll/ and 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.

0.37

25 Oct 08:45
Compare
Choose a tag to compare
Prepare for releasing 0.37.

0.36

14 Sep 20:06
Compare
Choose a tag to compare
All releases can be downloaded from GitHub.

0.35

23 Aug 10:40
Compare
Choose a tag to compare

0.35