Releases: ocaml/flexdll
FlexDLL 0.43
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.
FlexDLL 0.42
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
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
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
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 at0x4:00000000
-0x6:00000000
if not rebased or0x2:00000000
-0x4:00000000
if rebased. - #90, @dra27: Fix passing
NULL
toflexdll_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
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
Prepare for releasing 0.37.
0.36
All releases can be downloaded from GitHub.
0.35
0.35