FlexDLL Changelog

What's new in FlexDLL 0.43

Jun 8, 2023
  • @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
  • @dra27: Remove Cygwin32 support completely. The options have been removed, rather than raising errors, given that distribution has been archived
  • @shym: Fix parallel use of flexdll from OCaml 5 by putting error handling variables in thread-local storage
  • @nojb: Fix handling of object names longer than 16 characters with non-Microsoft archivers
  • @jonahbeckford: Interpret the /alternatename linker directive
  • @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!
  • @dra27: Add -lgcc_s to Cygwin's link libraries (upstreams an old patch carried in Cygwin's flexdll package)

New in FlexDLL 0.42 (Oct 19, 2022)

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

New in FlexDLL 0.41 (Feb 23, 2022)

  • Eliminate Warning 6 compiling coff.ml.
  • Harden version number parsing from ocamlopt -version.

New in FlexDLL 0.40 (Jan 5, 2022)

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

New in FlexDLL 0.39 (Dec 9, 2020)

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

New in FlexDLL 0.34 (Jan 22, 2015)

  • New option -norelrelocs to check that no relative flexdll relocations are created (this ensures that the generated DLLs can be loaded at any address),
  • New option -base to specify the image base address (msvc64 only).
  • Always generate a table for used __imp_XXX symbols (even when X is defined in the generated image).
  • Fix bug with empty sections in "-builtin" mode
  • -builtin: Generate proper ADDR64 instead of HIGHLOW (32-bit) relocations in the dll

New in FlexDLL 0.33 (Jan 22, 2015)

  • Turn 'too far' messages into proper errors, avoid terminating the process

New in FlexDLL 0.32 (Jan 15, 2015)

  • Turn 'too far' messages into proper errors, avoid terminating the process

New in FlexDLL 0.31 (Oct 4, 2013)

  • Support for "@respfiles" arguments (for long command lines). Used to be implemented by OCaml runtime system.
  • Fix bug when relocation counter > 0xffff
  • Fix bug with REL32 relocations on non-zero base in DLLs
  • Fix bug with empty .a files

New in FlexDLL 0.30 (Aug 3, 2012)

  • Allow the internal linker to create large DLLs (>= 16Mb)

New in FlexDLL 0.29 (Aug 3, 2012)

  • use "cygpath -S", not "cygpath -v" which no longer exists

New in FlexDLL 0.28 (Aug 3, 2012)

  • new option '-stack' to set the stack reserve
  • new option '-patch' (to be used in conjunction with -stack and -o to patch the an existing image)

New in FlexDLL 0.27 (Aug 3, 2012)

  • support for mingw64; the mingw toolcgain now relies on the 32-bit version of mingw64; the old "gcc -mno-cygwin" is no longer supporte.
  • fix directive parsing bug
  • support for new file layout for cygwin's version of mingw
  • support for objects with more than 65536 relocations

New in FlexDLL 0.26 (Aug 3, 2012)

  • fix for Win64 (use a PE32+ optional header, and a lower base address)
  • use _putenv_s instead of putenv for FLEXDLL_RELOCATE (thanks to Yasutaka Atarashi)
  • use /dev/null instead of NUL for Cygwin (thanks to Yasutaka Atarashi)

New in FlexDLL 0.25 (Aug 3, 2012)

  • fix a bug with archive member names that contain a slash

New in FlexDLL 0.24 (Aug 3, 2012)

  • add new toolchain msvc64; replace the old combination "-chain msvc -x64" (-x64 has been removed)
  • change build system to create a single binary version of flexdll that includes both the 32-bit and 64-bit version for MSVC's support objects
  • switch to Visual Studio 2008 (to compile the binary distribution and for the default manifests)

New in FlexDLL 0.23 (Aug 3, 2012)

  • ignore -D and -U flags (OCaml PR #4979)
  • change limit before using a response file (OCaml PR #4645)