Update bootstrap to use FlexDLL 0.43 from ocaml/flexdll #5579
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Cygwin flexdll package (David Allsopp)
required, reducing the overall number of calls. Further, detect whether
mingw-w64 gcc's library path requires cygpath, which further reduces the
calls when using Cygwin's build of mingw-w64 as the search path is then
converted only once. In passing, this trivially adds support for MSYS2's
mingw-w64 compilers, fixing GPR#97. (David Allsopp)
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.