Skip to content

Releases: ocaml/flexdll

FlexDLL 0.44

06 May 16:01

Choose a tag to compare

Summary

This release addresses various issues with using alternate toolchains and for cross-compilation, in addition to a few bug fixes.

Changes

  • #126, #127, @rzabarazesh: Recognise hyphens in option names in the COFF .drectve section
  • #136, @dra27, @jmid, @MisterDA: Fix parallel access crashes and misbehavior
  • #29, #141, @jonahbeckford: Support relocation kind 0003 (IMAGE_REL_AMD64_ADDR32NB) and IMAGE_REL_I386_DIR32NB. Extend relative types to IMAGE_REL_AMD64_REL32_5
  • #148, @toots: Pass-through -pthread to the linker
  • #150, @MisterDA: Fix stack reserve incorrectly reading from the start of the PE executable instead of the COFF file header. Fix reading the file address of new exe header
  • #153, @MisterDA: Allow the names of the compiler binaries to be overridden without losing the flags which go with them to assist use of alternate compilers and for cross-compilation. Fix FlexDLL cross-build on macOS and BSD
  • #151, @punchagan: Use response files with all toolchains
  • #152, @punchagan: Use a response file to pass arguments to cygpath
  • #156, @MisterDA: Allow choosing an alternative linker and manifest tool at runtime with -use-linker=<cmd> and -use-mt=<cmd>
  • #133, #147, @dra27: Allow default libraries to be marked as optional
  • #157, @MisterDA: Improve flexlink support on running on Unix (for cross-compiling)
  • #158, @MisterDA: Reuse the compilers used during the build for later operations, such as querying the compilers for their library search paths. Support parsing clang output

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 future, although now that FlexDLL is mostly used via opam, this hopefully doesn't cause too many issues.

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

08 Jun 10:42

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

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

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

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

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

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

Choose a tag to compare

Prepare for releasing 0.37.

0.36

14 Sep 20:06

Choose a tag to compare

All releases can be downloaded from GitHub.

0.35

23 Aug 10:40

Choose a tag to compare

0.35