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

Build and install libpython3.dll #148

Merged
merged 1 commit into from
Aug 22, 2023

Conversation

lazka
Copy link
Member

@lazka lazka commented Aug 21, 2023

This provides the limited ABI as a separate DLL, forwarding to the
real one. This makes linking with "-lpython3" work.

Fixes #147

This provides the limited ABI as a separate DLL, forwarding to the
real one. This makes linking with "-lpython3" work.

Fixes python#147
lazka added a commit to lazka/MINGW-packages that referenced this pull request Aug 21, 2023
This makes distutils link against python3 instead of python3.x when
py_limited_api is set on the extension. With MSVC this is solved via
pragma, which doesn't have an alternative with our toolchains.

This depends on libpython3.dll being installed, so
msys2-contrib/cpython-mingw#148
@lazka lazka marked this pull request as ready for review August 21, 2023 17:38
Copy link
Member

@naveen521kk naveen521kk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm. Could we add a test for testing this?

@lazka
Copy link
Member Author

lazka commented Aug 21, 2023

lgtm. Could we add a test for testing this?

yeah, I'm not quite sure how to best approach this. With msys2/MINGW-packages#18232 I could build an extension with setuptools, but how do I check if it worked? hm..

@lazka
Copy link
Member Author

lazka commented Aug 21, 2023

ok, I have something. I'll create a separate PR though as the test depends on the setuptools patch, and the setup tools patch depends on this.

lazka added a commit to lazka/cpython that referenced this pull request Aug 21, 2023
This builds the test module twice, once normally and once for the
limited API. In the later case we check at runtime if libpython3.dll
is loaded, to make sure we are actually linked against it and not
against libpython3.x.dll.

This depends on both:
* msys2-contrib#148
* msys2/MINGW-packages#18232
lazka added a commit to lazka/cpython that referenced this pull request Aug 21, 2023
This builds the test module twice, once normally and once for the
limited API. In the later case we check at runtime if libpython3.dll
is loaded, to make sure we are actually linked against it and not
against libpython3.x.dll.

This depends on both:
* msys2-contrib#148
* msys2/MINGW-packages#18232
@lazka
Copy link
Member Author

lazka commented Aug 21, 2023

I've created #150 for the test

@lazka lazka merged commit 8aeb46d into msys2-contrib:mingw-v3.11.4 Aug 22, 2023
13 checks passed
lazka added a commit to lazka/MINGW-packages that referenced this pull request Aug 22, 2023
lazka added a commit to lazka/cpython that referenced this pull request Aug 23, 2023
This builds the test module twice, once normally and once for the
limited API. In the later case we check at runtime if libpython3.dll
is loaded, to make sure we are actually linked against it and not
against libpython3.x.dll.

This depends on both:
* msys2-contrib#148
* msys2/MINGW-packages#18232
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.

Provide a stable ABI python3.dll
2 participants