Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add builds with \MD flag for building Python extensions #674

Closed
wants to merge 1 commit into from

Conversation

tkralphs
Copy link
Member

@tkralphs tkralphs commented Oct 4, 2024

No description provided.

@jhmgoossens
Copy link
Contributor

See comment on PR #673 regarding MSVC MT and MD artifacts, notably MT missing libgcc_s_seh.

@jhmgoossens
Copy link
Contributor

@tkralphs I propose to Close this PR and I will make PRs for all stables of all projects to use --enable-msvc=MD so the binaries are really MD and not MT binaries called "-md" as is the case currently.

Details:
This PR 674 build for stable:

  • The MSVC MT binaries (~14.7MB zip) are NOT working due to missing libgcc_s_seh-1.dll and libstdc++-6.dll
  • The MSVC MD binaries (~17.7MB zip) are working and no reference to libgcc_s_seh and libstdc++-6., but no CoinUtils-0.dll etc. Only one large executable for Clp.exe and Cbc.exe. And these binaries really are "MD" because they indeed dynamically link to MS C runtime libraries.

The current stable build has binaries called "-md", but (as you noticed) those are really MT binaries. This is caused by the fact that we simplified the windows-ci.yml in stable to --enable-msvc (like in master), but we (I) didn't realize that the configure in master and stable are actually different in this respect: master configure expects --enable-msvc while stable configure supports --enable-msvc=MD, though "=MT" doesnt work (see above). Conclusion: In stable to make MD binaries 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.

Since the aim of this PR is to make MD binaries for stable (not to make also good MT binaries) I propose to close this PR.
Instead, I will make PRs for all stables because they all currently produce binaries that work (phew) but that are called "-md" but are in fact all "MT". The easiest way in stable to make good MD binaries is simply to replace --enable-msvc with --enable-msvc=MD. Let me know if you disagree.

Again, thanks to Stefan.

@tkralphs
Copy link
Member Author

Yes, I agree, the cleanest thing to do is to fix all the projects, although I think it is really only a big issue for Cbc itself.

@tkralphs tkralphs closed this Oct 14, 2024
@tkralphs tkralphs deleted the msvc-md-stable branch October 14, 2024 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants