Open jhmgoossens opened 2 weeks ago
As a result of these changes to windows-ci for stable branches all MSVC Windows binaries are built with "MD", so with dynamically linked runtime. None of the MSVC Windows binaries are "MT". See also learn.microsoft.com.
If you need "MT" binaries to be included in the release artefacts, please raise an issue.
Hi @jhmgoossens, sorry for the delay in responding. It's easy to tell the projects that use the "new" build tools from the "old" by just looking for a subdirectory that is the same as the name of the project. If there is one, then it's the "old" build tools. If not, it's the "new. For ALPS (And BiCePS), it's admittedly a little confusing because there is a "new" version of the API developed long ago for use in DiSCO, but this is still using the older build tools (it has not been actively developed in some time). In the meantime, the version 1.5 with the "old" API, which is used by several other projects that are still actively developed, got upgraded to the "new" build tools. The story is similar for BiCePS. So these are the versions still on old build tools that are still used and need to be changed to MD: ALPS 1.5 ALPS 2.0 BiCePS 0.99 BiCePS 0.94 BLIS 0.94
The Windows-CI.yml builds for stable branches for the relevant coin-or project all create binaries that are called "-md.zip". These binaries seem to be built using the MSVC flag "MD" to include the Microsoft C runtimes as dynamic link libraries, but in reality these binaries statically link against the Microsoft C runtimes ("MT").
This is discussed in CyLP issue 204 and Cbc PR 674.
Note that the master branch binaries called "-md.zip" are not affected by this issue--these really are "-MD" binaries.
This issue for stables is caused by the fact that we simplified the windows-ci.yml in stables to
--enable-msvc
(like in masters), but we (I) didn't realize that the configure in master and stables are actually different in this respect: master configure expects--enable-msvc
while stable configure supports--enable-msvc=MD
, though "=MT" doesn't in work in stable (see above).For now, to make "MD" binaries in stable, use
--enable-msvc=MD
and to make MT binaries use--enable-msvc
. Maybe stable configure can be fixed here, but master configure already has this fixed by only supporting--enable-msvc
which makes proper MD binaries.This affect the following stables:
Cbc: https://github.com/coin-or/Cbc stable/2.10 Indeed configure tries to handle --enable-msvc=MD, so affected.
CoinUtils: https://github.com/coin-or/CoinUtils stable/2.11 Indeed configure tries to handle --enable-msvc=MD, so affected.
Osi: https://github.com/coin-or/Osi stable/0.108 Indeed configure tries to handle --enable-msvc=MD, so affected.
Clp: https://github.com/coin-or/Clp stable/1.17 Indeed configure tries to handle --enable-msvc=MD, so affected.
Cgl: https://github.com/coin-or/Cgl stable/0.60 Indeed configure tries to handle --enable-msvc=MD, so affected.
MibS: https://github.com/coin-or/MibS stable/1.2 Indeed configure tries to handle --enable-msvc=MD, so affected.
SYMPHONY: https://github.com/coin-or/SYMPHONY stable/5.7 Indeed configure tries to handle --enable-msvc=MD, so affected.
CHiPPS-ALPS: https://github.com/coin-or/CHiPPS-ALPS stable/2.0 For stable\2.0, indeed configure tries to handle --enable-msvc=MD, so affected. QUESTION: Which stable to fix: Latest is marked as 1.5.12, but 2.0 exists?!
CHiPPS-BiCePS: https://github.com/coin-or/CHiPPS-BiCePS stable/0.99 For stable\0.99, indeed configure tries to handle --enable-msvc=MD, so affected. QUESTION: Which stable to fix: Latest is marked 0.94.9, but 0.99 exists?!
CHiPPS-BLIS: https://github.com/coin-or/CHiPPS-BLIS stable/0.95 For stable\0.94 indeed configure tries to handle --enable-msvc=MD, so affected. For stable\0.95 configure already expects --enable-msvc to make MD, so nothing to do. QUESTION: Which stable to fix: Latest is marked 0.94.13, but 0.95 exists?!
Not affected is DyLP (https://github.com/coin-or/DyLP) because if only has a master branch for which the "-md.zip" binaries are OK.
@tkralphs Which of the multiple stables have to be updated for CHiPPS-xx?