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

bpo-36071 Add support for Windows ARM32 in ctypes/libffi #12059

Merged
merged 3 commits into from Apr 18, 2019

Conversation

paulmon
Copy link
Contributor

@paulmon paulmon commented Feb 26, 2019

This will need to rebased on the pending libffi PR before it is merged
All test_ctypes tests pass on both retail and debug builds except for test_SEH (retail only)
I am trying to see if I can get help with the unwind semantics in arm assembly using MSVC tools
Also python/cpython-source-deps#9 will need to be merged before this will build.

https://bugs.python.org/issue36071

@paulmon
Copy link
Contributor Author

paulmon commented Mar 5, 2019

Submitted ARM32 changes to libffi: libffi/libffi#477

@zooba
Copy link
Member

zooba commented Mar 29, 2019

Since I assume this PR is going to require new libffi builds, keep using the branch name in get_externals until it's ready. Then remind me to tag it and remind you to change to use the tag before merging :)

@zooba
Copy link
Member

zooba commented Mar 29, 2019

It's probably also a good idea to rebase this onto master and squash all the commits (do a merge, then git reset --soft upstream/master, re-commit, and force push).

@paulmon
Copy link
Contributor Author

paulmon commented Mar 30, 2019

@zooba I cleaned up this PR.

I also cleaned up the PR for the arm32 libffi-7.dll changes:
python/cpython-source-deps#9

I have build this locally and tested test_ctypes on a Raspberry Pi 3 with success.
I kicked off all of the standard library tests and will check on that later.

Copy link
Member

@zooba zooba left a comment

Choose a reason for hiding this comment

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

A few unrelated changes, it seems, but otherwise it looks okay. (Is there another PR I should be looking at first)

Include/internal/pycore_atomic.h Outdated Show resolved Hide resolved
PC/layout/support/options.py Outdated Show resolved Hide resolved
PCbuild/python.props Outdated Show resolved Hide resolved
@paulmon
Copy link
Contributor Author

paulmon commented Apr 1, 2019

A few unrelated changes, it seems, but otherwise it looks okay. (Is there another PR I should be looking at first)

This PR adds libffi support for arm32 on windows. python/cpython-source-deps#9

Python/ceval.c Outdated Show resolved Hide resolved
Python/ceval.c Outdated Show resolved Hide resolved
only use optimizer workaround on old compilers
enable ctypes for ARM in configuration manager
PC/layout/main.py Outdated Show resolved Hide resolved
@zooba
Copy link
Member

zooba commented Apr 13, 2019

I'm running a libffi build with the ARM32 binaries now. Hopefully I'll get that done this evening.

@zooba
Copy link
Member

zooba commented Apr 13, 2019

@paulmon The ARM32 build failed - apparently the -marm option is unknown? See the logs starting at line 2456 of the "Install cygwin and build" step at https://dev.azure.com/python/cpython/_build/results?buildId=40818&_a=summary&view=logs

Any ideas?

@paulmon
Copy link
Contributor Author

paulmon commented Apr 15, 2019

@paulmon The ARM32 build failed - apparently the -marm option is unknown?
I think you still need to merge python/cpython-source-deps#9 before building

@zooba
Copy link
Member

zooba commented Apr 17, 2019

@paulmon How did this pass without the libffi build? Which PR requires the build?

@paulmon
Copy link
Contributor Author

paulmon commented Apr 17, 2019

Do you mean how did the CI build pass? The CI build passes because there is no arm32 in the strategy matrix in pr.yml (also ci.yml).

I think the CI/PR pipelines will need to skip running tests for ARM builds if they are added here. In addition to needing to execute the tests on an ARM machine the tests currently take close to 90 minutes on a raspberry pi.

Also, if you add ARM to the CI build right now the build will break on this: #12665

@paulmon
Copy link
Contributor Author

paulmon commented Apr 17, 2019

One more thing. To build ARM from master --no-tkinter and --no-ssl are both needed as well. I can propose changes to the CI.yml files in a PR if you think that would be helpful.

@zooba
Copy link
Member

zooba commented Apr 18, 2019

Do you mean how did the CI build pass? The CI build passes because there is no arm32 in the strategy matrix in pr.yml (also ci.yml).

Ah yeah, that makes sense :)

Let's just get the buildbot plugged in. We're clearly not going to run tests from any of our CI providers just yet.

@zooba zooba merged commit 11efd79 into python:master Apr 18, 2019
@paulmon paulmon deleted the ffi2 branch May 10, 2019 00:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants